## The symptom
On the quickbooks-ruby oauth2 branch, every POST to create a customer or
invoice suddenly failed with a weird XML error that just showed
`<?xml version="1.0"?>` as the error message. Nothing in the app code changed.
Sandbox and production both failed.
## Why
Intuit changed their responses to be gzip-compressed without telling anyone,
and the gem's Faraday connection did not always have the gzip middleware
registered. The raw compressed response was parsed as XML and blew up with the
cryptic error.
## The fix
Update quickbooks-ruby to a version that includes the gzip fix on the oauth2
branch (the fix: always rebuild the Faraday connection with gzip support).
## Workaround if you are pinned to an older commit
Register gzip explicitly when building the OAuth2 client: pass a block to
`OAuth2::Client.new` that does `builder.use :gzip`, `builder.request
:url_encoded`, and sets the adapter.
## The general lesson
A cryptic parse error that appears overnight with no code change, hitting
sandbox and production at once, is usually a provider-side change, not your
bug. Check whether the response format changed (compression, encoding) before
debugging your request.