XF 2.1 User upgrades: Can't identify purchase based on event data from Stripe (missing meta data?)

Jon Snow


We're having problems with user upgrades and Stripe. Communication between Stripe and Xenforo doesn't seem to work properly.

The payment provider log reveals that the "charge.succeeded" event always results in the error "Event data received from Stripe does not contain the expected values."

The log entry doesn't identify the user, purchase request key, subscriber ID, or even the payment profile ("Unknown profile").

The webhook payload doesn't contain any meta data, which may explain why Xenforo can't identify the charge/customer.

["metadata"] => array(0) {

We have enabled all the necessary webhook events (according to getActionableEvents()).

The very first "charge.succeeded" event sent by Stripe (when the user starts the subscription) is handled successfully by Xenforo and contains the expected meta data (user_id, username, email).

The API version is set to 2019-10-17 in the Stripe dashboard. It's not possible to downgrade to 2019-08-04, which Xenforo uses. However, I can't find anything in the Stripe change log that would suggest incompatibilities.

We're on Xenforo v2.1.6 Patch 1