Address is an AWS ARN and includes api_client_id 'x' instead of 'y'

First off, I’m sorry about the formatting. Markdown apparently is not an option.

I’m running this request through Postman. Some posts to the Shopify developer forum (e.g., https://community.shopify.com/c/shopify-apis-and-sdks/eventbridge-integration-is-broken/m-p/878112#M56034) express without clear explanation that the request should be made within the Shopify app that would be subscribing to the Webhooks, but Postman seems to work, too.

In Postman . . .

Here’s the endpoint:

https://{{shopifyDevelopmentStoreName}}.myshopify.com/admin/api/2022-07/graphql.json

Here’s the GraphQL body:

mutation createWebhookSubscription(

$topic: WebhookSubscriptionTopic!, $webhookSubscription: EventBridgeWebhookSubscriptionInput!

) {
eventBridgeWebhookSubscriptionCreate(topic: $topic, webhookSubscription: $webhookSubscription) {
webhookSubscription {
id
}
userErrors {
message
}
}
}

Here’s the payload being sent (notice the “client_id_x” value within the arn property):

{
“topic”: “PRODUCTS_CREATE”,
“webhookSubscription”: {
“arn”: “arn:aws:events:us-east-1::event-source/aws.partner/shopify.com/client_id_x/LovecraftEventBridgeSource”,
“format”: “JSON”,
“includeFields”: “id”
}
}

Here’s the response I receive:

{
“data”: {
“eventBridgeWebhookSubscriptionCreate”: {
“webhookSubscription”: null,
“userErrors”: [
{
“message”: “Address is invalid”
},
{
“message”: “Address is an AWS ARN and includes api_client_id ‘client_id_x’ instead of ‘client_id_y’”
}
]
}

},
“extensions”: {
“cost”: {
“requestedQueryCost”: 10,
“actualQueryCost”: 10,
“throttleStatus”: {
“maximumAvailable”: 1000.0,
“currentlyAvailable”: 990,
“restoreRate”: 50.0
}
}
}
}

What’s entirely unclear is why Shopify is insisting upon validity of “client_id_y” when, in AWS, the value being displayed is undeniably ‘client_id_x’. Extremely confusing. I don’t even see what difference using the Shopify app would make except that it produces a client_id value that works counter to one’s expectations and intuitions.

Does anyone know why the heck Shopify isn’t just using the client_id value of the event bus created earlier in Amazon EventBridge?

1 Like