A query volta com Cannot query field "meu_campo" on type "ProductInterface" e o campo está lá, escrito no schema.graphqls do seu módulo. Em nove de cada dez vezes o schema não tem culpa: é cache. O Magento costura os arquivos de todos os módulos uma vez, guarda o resultado, e enquanto a versão velha estiver de pé aquele campo simplesmente não existe para o servidor.
A limpeza que resolve
cd /var/www/loja
sudo -u www-data rm -rf generated/code generated/metadata
sudo -u www-data bin/magento setup:upgrade
sudo -u www-data bin/magento setup:di:compile
sudo -u www-data bin/magento cache:flushDuas ressalvas antes de colar isso em produção. A loja fica fora do ar entre o rm -rf generated/ e o fim do setup:di:compile, então rode em janela de manutenção. E o cache:clean config sozinho não adianta: o schema costurado é gravado com o id Magento_Framework_GraphQlSchemaStitching_Config_Data e sem a tag CONFIG, e o cache:clean apaga por tag. Quem derruba é o cache:flush, que esvazia o storage inteiro. Apagar var/cache na unha também só resolve se o backend for arquivo; com Redis não tem nada ali.
Confirme o que o servidor carregou
Em vez de adivinhar, pergunte ao próprio endpoint quais campos o tipo tem hoje:
curl -s https://sualoja.com.br/graphql
-H 'Content-Type: application/json'
-d '{"query":"{ __type(name: "ProductInterface") { fields { name } } }"}'Se a resposta for GraphQL introspection is not allowed, o bloqueio é o graphql/disable_introspection do app/etc/env.php; em produção ele fica ligado mesmo, faça o teste em homologação. Campo fora da lista é problema no servidor: o arquivo precisa estar em app/code/Vendor/Modulo/etc/schema.graphqls, e não em etc/frontend/, porque o leitor de schema roda no escopo global e não olha em subpasta de área. Depois disso, confira se o módulo está ligado com bin/magento module:status Vendor_Modulo.
Última pegadinha: consulta GraphQL por GET entra no full page cache. Depois de mexer no schema, teste com POST, senão você vai debugar meia hora uma resposta que ficou congelada.