keystone icon indicating copy to clipboard operation
keystone copied to clipboard

Production build failing with "unexpected call to getAdminMetaInRelationshipField" error

Open ttbarnes opened this issue 2 years ago • 5 comments

When running keystone build via npm scripts with NODE_ENV set to "production", I get the following error:

Error: unexpected call to getAdminMetaInRelationshipField
    at Object.getAdminMetaForRelationshipField (/Users/tony/project-x/src/api/node_modules/@keystone-6/core/dist/create-admin-meta-5d6c7c4d.cjs.prod.js:152:11)
    at Object.getAdminMeta (/Users/tony/project-x/src/api/node_modules/@keystone-6/core/fields/dist/keystone-6-core-fields.cjs.prod.js:2882:45)
    at Object.createAdminMeta (/Users/tony/project-x/src/api/node_modules/@keystone-6/core/dist/create-admin-meta-d9f6d1a4.cjs.dev.js:141:245)
    at Object.createSystem (/Users/tony/project-x/src/api/node_modules/@keystone-6/core/dist/createSystem-6881942b.cjs.dev.js:2182:37)
    at build (/Users/tony/project-x/src/api/node_modules/@keystone-6/core/scripts/cli/dist/keystone-6-core-scripts-cli.cjs.dev.js:519:20)

It also happens when adding the "no ui" flag: keystone build --no-ui.

It works perfectly when NODE_ENV set to "development".

keystone.ts:

export default withAuth(
  config({
    db: {
      provider: 'mysql',
      url: DB_URL,
    },
    lists,
    session,
  })
);

lists and session are not doing anything out of the ordinary and are following the examples.

I expect the build to be successful - it has been for quite some time, but it seems that some recent changes (in my codebase) are causing this error. It looks like keystone is failing with some currentAdminMeta logic in create-admin-meta.ts and not surfacing some more contextual information.

Should it be trying to create admin related things even with --no-ui?

I appreciate this is more than likely something in my codebase. Struggling to find what the cause could be. I've removed or simplified a lot of the setup to try and get the build working, but keep getting this error.

How or why would this be happening please?

  • Node version v19.4.0. Also tried previous versions e.g v18.16.0.

ttbarnes avatar Aug 30 '23 10:08 ttbarnes

For anyone who comes across this - for now, setting the NODE_ENV in npm scripts works as per this comment.

"build": "NODE_ENV=production keystone build"

Having it set in a .env file doesn't work and causes the above error RE getAdminMetaInRelationshipField.

ttbarnes avatar Aug 31 '23 07:08 ttbarnes

can i try to solve it?

aditya162002 avatar Sep 12 '23 01:09 aditya162002