Cannot create metaobjects with app-owned type

We’re trying to create app-owned metaobjects to be able to store and query some customer data, however when we run metaobjectUpsert or metaobjectCreate to create a metaobject with a type starting with “$app:”, we get the following error (tried both from GraphiQL and from a local script):

Not authorized to modify entries of type “app–174649278465–membership_expiration”

Here is the metaobject definition that we create using the same app that we use to try to create the metaobjects.

[
    {
      type: '$app:membership_expiration',
      displayNameKey: 'customer_id',
      name: 'Membership Expiration',
      description: 'Tracks membership expiration dates for customers without payment methods',
      access: { admin: 'MERCHANT_READ', storefront: 'NONE' },
      fieldDefinitions: [
        {
          key: 'customer_id',
          name: 'Customer ID',
          description: 'The ID of the customer',
          type: 'single_line_text_field',
          required: true,
        },
        {
          key: 'expiration_date',
          name: 'Expiration Date',
          description: 'The date when the membership expires (YYYY-MM-DD)',
          type: 'single_line_text_field',
          required: true,
        },
      ],
    },
  ]

Creating the definition works as expected without any errors. When we query the createdByApp { id } field from the metaobject definition and currentAppInstallation { app { id } } they both return the same app prefix. We have added read_metaobjects and write_metaobject_definitions to the scopes.

What would be the next steps to debug this issue? How do I know what is causing my app not being authorized to access its own metaobjects?

Thanks for your help.

Hi @geiszla :waving_hand: - could you try adding the write_metaobjects scope to your app as well if you haven’t already and letting me know if that resolves the issue?

If not or if you already have that scoped assigned, just let me know here in this thread (and include an example X-Request-ID from the API response headers for the API response after you try to create the metaobject if possible!) and I’d be happy to look into this further with you for sure.