A Magento profit tool that says Magento 500 /V1/orders is not asking you to regenerate the Integration. Magento crashed before it returned a single order. The JSON body is almost always the same lie:
> An error has happened during application run. See exception log for details.
That sentence is Magento hiding a PHP exception. The profit app only sees HTTP 500. It cannot invent the stack. It cannot invent DailyProfit.
Yesterday’s net is still:
`` net = revenue − refunds − COGS − merchant shipping − payment fees − custom expenses − ad spend ``
SKU contribution stays revenue − COGS. No REST row, no SKU line. Do not install a Magento tracking module or Conversions API to “fix” a 500. A pixel does not compile interceptors.
Three failures, three jobs
| What you see | What it actually is | What it is not |
|---|---|---|
| 401 on connect / sync | Magento rejected the Bearer token | A dead Purchase |
| 403 / “Just a moment…” | ACL or WAF — 401 / Bearer / Cloudflare | Missing COGS |
| 500 + “See exception log” | Magento threw — often missing generated/code Interceptors | A bad Access Token |
The Settings hint “check Integrations” is the generic fallback. Use it for 401. For 500, open the shop log first.
What the first request actually is
Before a sync writes orders, Verid asks Magento for one cheap page:
GET /rest/V1/orders?searchCriteria[pageSize]=1 (fields=items[entity_id],total_count)
If that request 500s, validation fails and the connection stays ERROR. The trial clock does not start. Overview has no store date.
Illustrative — not a customer P&L:
| Clock | Token / WAF | generated/ wiped mid-deploy |
|---|---|---|
HTTP on /V1/orders | 401 or 403 HTML | 500 + exception stub |
var/log/exception.log | Usually quiet | Http\\Interceptor does not exist |
| DailyProfit after retry | Still empty until REST works | Empty until codegen is back |
Same Integration. Different failure.
The stack that matches the 500
On a live Magento 2 shop, a profit sync retried three times at the same second the shop logged:
ReflectionException: Class "Magento\\Framework\\App\\Http\\Interceptor" does not exist
Sometimes the next line is Json\\Interceptor not found. That is ObjectManager after someone ran rm -rf generated (or setup:upgrade) and PHP-FPM served traffic before interceptors existed again.
This is not Sales ACL. It is not Cloudflare. The storefront can still look fine if FPC is warm. REST is a different bootstrap. It dies immediately.
The same class of error comes back the next time someone deploys and forgets compile. The Integration token does not expire in those minutes. The codegen directory does.
What to do this afternoon
- On the Magento host:
tail -100 var/log/exception.log. Look for the timestamp of the failed Sync — not a random checkout plugin from last week. - If you see Interceptor does not exist:
generated/codeis incomplete. Finish deploy:bin/magento setup:di:compile(or let Magento regenerate) before PHP-FPM takes traffic. Confirmgenerated/code/Magento/Framework/App/Http/Interceptor.phpexists. - Retry Sync now. If
/V1/orders?pageSize=1returns JSONitems+total_count, the 500 is gone. - If exception.log shows a plugin on
OrderRepositoryinstead — that is a different 500. Fix or disable that module. Still not a pixel job. - If Magento is ACTIVE on one Verid store and ERROR on a second store pointed at the same shop, the shop may already be healthy. Retry the ERROR store. Do not paste a new token first.
Then read yesterday’s net plus one leak. A missing day because REST 500’d is not a leak in COGS.
Where Verid fits
Verid pulls Magento over REST and an Integration token — connect guide. No module. First sync is orders and credit memos, not a theme deploy.
A 500 is Magento’s exception, not an empty trial. Fix codegen or the plugin, then sync. The pixel is one Settings snippet if you want storefront Purchases — it does not rebuild generated/.
See the sample dashboard, or start a 14-day trial when you can paste an Integration token the same afternoon. The clock starts after the first successful Magento REST sync.