Hi Mnf,
Are you using a client like Postman to make this mutation? If you try making the same mutation with the GraphiQL app, are you seeing the expected change occuring?
Problem: Updating a customer’s email marketing state to SUBSCRIBED via customerEmailMarketingConsentUpdate returned 200 with no userErrors, but marketingState stayed UNSUBSCRIBED.
Troubleshooting: Same behavior observed via Postman and C#. In GraphiQL, the mutation failed with “Access denied… write_customers” until the app was reinstalled with the correct scopes (write_customers), per guidance and OAuth scope docs.
Root cause found: The consentUpdatedAt field must be greater than or equal to the customer’s existing consentUpdatedAt. If the provided value is earlier, the marketingState is not updated and no error is returned.
Important nuance: If the stored consentUpdatedAt includes a timestamp (e.g., 2024-01-16T01:01:01Z), providing only a date (2024-01-16) can be considered earlier. Include a timestamp that is >= the existing value to succeed.
Outcome/Status: Issue resolved by ensuring proper app scopes and passing a consentUpdatedAt that meets or exceeds the current value. Participant suggests documentation should clarify this behavior; no official confirmation of a bug.
Hi Mnf,
Are you using a client like Postman to make this mutation? If you try making the same mutation with the GraphiQL app, are you seeing the expected change occuring?