The header as it is sent is `x-hub-signature` not `X-Hub-Signature`. Casing won't matter if you're getting the header from an environment variable under Apache, as in the Ruby example here (Apache uppercases it and swaps in underscores for hyphens), but in other frameworks you'll need the correct casing to get the header out of a hash/dict. (e.g. AWS Lambda function URL, the headers come as part of a JSON object and you need the correct casing)