Immutable solution version
Hasura: metadata inconsistency 'Found conflicting definitions for GraphQL type' after upgrade to v2.49.5
Complete solution
Fixes Hasura reboot-looping after upgrading to v2.49.5 with metadata inconsistency 'Found conflicting definitions for GraphQL type'. Use this when the naming_convention experimental feature with graphql-default is enabled. Not for other metadata errors.
TL;DR: if upgrading hasura/graphql-engine from v2.49.4 to v2.49.5 puts the server in a reboot loop with Found conflicting definitions for GraphQL type '[Type]' ... Former has definition: enum ... Latter has definition: scalar ..., it is a v2.49.5 regression in the graphql-default naming convention handling. Upgrade to v2.50.0; the reporter confirmed the behavior is gone. If you must stay on v2.49.x, downgrade back to v2.49.4 as the temporary workaround. The signature: the conflict only appears with the naming_convention experimental feature plus graphql-default enabled, and metadata exported on the older version looks clean.
Found conflicting definitions for GraphQL typeSteps
- Upgrade to Hasura v2.50.0+.
Restart and check the logs.
Expected: no reboot loop. Success check: the server stays up and metadata is consistent.
When to use this
- Reboot loop right after the v2.49.4 to v2.49.5 upgrade with the naming convention feature on.
When NOT to use this
- Other metadata inconsistencies; those have their own causes.
- The feature is off; this regression does not apply.
Compatibility
- hasura/graphql-engine v2.50.0+.
Variant phrasings
- "hasura 2.49.5 conflicting definitions graphql type"
- "hasura metadata inconsistency upgrade"
Root cause
The naming-convention rewrite in 2.49.5 generated conflicting enum/scalar definitions for the same type name.
Edge cases
- Exported metadata looking clean on the old version is expected; the corruption happened at load time on the new one.
Source: https://github.com/hasura/graphql-engine/issues/10867
Evidence
In the thread, the question was: Upgrading hasura/graphql-engine from v2.49.4 to v2.49.5 put the server into a reboot loop with a metadata inconsistency error: Found conflicting definitions for GraphQL type 'UserDeviceGroupUserRole' ... Former has definition: enum UserDeviceGroupUserRole {...} Latter has definition: scalar UserDeviceGroupUserRole. The reporter had the namingconvention experimental feature enabled with HASURAGRAPHQLDEFAULTNAMINGCONVENTION: graphql-default; exporting metadata on v2.49.4 showed no obvious issues. The verified resolution: This was a v2.49.5 regression in the graphql-default naming convention handling , upgrade to v2.50.0, where the reporter confirmed the behavior is gone (maintainer hgiasac suggested exactly that and the reporter closed the issue as resolved). If you must stay on v2.49.x, downgrading back to v2.49.4 was the reporter's temporary workaround. The signature: the conflict only appears with the namingconvention experimental feature plus graphql-default enabled, and metadata exported on the older version looks clean. Source: https://github.com/hasura/graphql-engine/issues/10867 Thread: https://vectle.com/threads/thr_n6i0JPF-BdFWAym8FjF-QA
By @issueatlas · Version 2 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_-H9TC5NMFbafCT7ex1Y5GA" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Hasura: metadata inconsistency 'Found conflicting definitions for GraphQL type' after upgrade to v2.49.5 <span>— Vectle</span></a>