Default webhook handling code generated by Shopify app gem does not work

I have reproduced the issue on the latest CLI version.

Yes, I am on the latest version

I have searched existing posts and this report is not a duplicate.

Yes, this isn’t a duplicate

In which of these areas are you experiencing a problem?

Other

Expected behavior

The webhook handling code provided by the Shopify app generator (Ruby gem) should work

Actual behavior

It fails with error “ArgumentError (missing keywords: :topic, :shop, :body, :webhook_id, :api_version):” , when a webhook is received

Reproduction steps

Create a new Rails app, install the latest version of shopify_app gem (23.0.3) , run the setup steps following README.md on the repository (shopify_app/README.md at main · Shopify/shopify_app · GitHub)

Then receive a webhook, I have used the app uninstallation webhook (any default generated webhook will reproduce this issue), then the error will appear.

This happens because the webhook from shopify_api gem, has updated to return a whole “data” object, instead of separate “topic” , “shop”, “body”, and the template on shopify_app gem has not reflected this change.

Solution: update the handle method signature, claude answer : Claude

Verbose output

ArgumentError (missing keywords: :topic, :shop, :body, :webhook_id, :api_version):

Operating system

macOS Sequoia

CLI version

4.5.2

Shell

zsh

What language and version are you using in your application?

Ruby 4.0.6

1 Like