Expensify SmartScan Troubleshooting
Stuck on “SmartScanning” forever? Seeing SCANFAILED? Forwarded receipts vanishing? A full diagnostic walkthrough of every way Expensify SmartScan breaks — including the forwarding-chain root cause most troubleshooting guides miss.
Last updated: April 2026
In This Guide
- 1. How SmartScan actually works
- 2. Diagnostic flowchart: which failure is yours?
- 3. Category A — Receipt never arrived
- 4. Category B — Arrived but scan failed or stuck
- 5. Category C — Wrong data extracted
- 6. Category D — Quota & plan limits
- 7. Category E — The forwarding-chain problem
- 8. When to stop troubleshooting and switch approach
- 9. Frequently Asked Questions
1. How SmartScan actually works — the layered pipeline you need to understand to fix it
Most SmartScan troubleshooting advice fails because it treats SmartScan as a single thing. It isn't. According to Expensify's own engineering blog, SmartScan is a layered pipeline: OCR runs first, then a set of vendor-specific parsers that recognise receipts from Amazon, Home Depot, Delta, and dozens of other well-known issuers, and then a 24/7 human verification network picks up anything the machine isn't confident about.
The accuracy number matters. Expensify markets SmartScan as roughly 99% accurate, but the company is blunt in its own blog that “even the best OCR in the world only gets a receipt right around 85% of the time.” That remaining ~14 points come from the vendor parsers and the human reviewers. A 2017 Quartz investigation documented that some of the human review historically ran through Mechanical Turk.
Why does this matter for troubleshooting? Because a SmartScan problem can live in any layer of the pipeline — the upload itself, the OCR pass, the vendor-parser routing, the human review queue, or the steps before and after SmartScan entirely. Each layer fails differently and has a different fix. Lumping them together is what makes generic advice useless.
2. Diagnostic flowchart: which category is your failure?
Run through these four questions in order. The first one you answer “no” to points you at the right category below.
- 1.Does the receipt appear in Expensify at all (any state, including “Checking” or an empty expense)? No → jump to Category A.
- 2.Did SmartScan finish (not stuck, not SCANFAILED)? No → jump to Category B.
- 3.Is the extracted amount, date, and merchant correct? No → jump to Category C.
- 4.Are you seeing any “upgrade your plan” or Concierge upsell messages around this receipt? Yes → check Category D.
If the receipt is being forwarded from Gmail or Outlook and you keep landing in Category A even after fixing the obvious stuff, skip ahead to Category E — the forwarding chain itself is probably the problem.
3. Category A — Receipt never arrived at Expensify
Symptom: you forwarded or emailed a receipt to receipts@expensify.com and nothing shows up in Expensify at all — no expense, no SCANFAILED, no “Checking” placeholder. The receipt didn't reach Expensify's servers, so nothing in the SmartScan pipeline has a chance to run.
Sending address not verified as a secondary login
Cause: Expensify only accepts receipts from the primary login or a verified secondary login. Unverified senders are silently dropped — no error, no bounce.
Fix: Settings → Account → Contact Methods → Add a secondary login. Add the address, then complete the Magic Code verification from that inbox. See the full email receipts to Expensify setup walkthrough.
Typo in the destination address
Cause: Sent to receipt@expensify.com (singular), receipts@expensifiy.com, or a similar typo. These silently bounce or go nowhere.
Fix: The correct address is exactly receipts@expensify.com. Save it as a contact to eliminate repeat typos.
Gmail or Outlook flagged Expensify's bounce as spam
Cause: When something goes wrong, Expensify often replies with an error email. If Gmail or Outlook files that reply into Spam, you never see it and assume nothing happened.
Fix: Search your spam/junk folder for from:expensify.com. Whitelist the domain so future bounces land in your inbox.
Attachment type not supported
Cause: receipts@expensify.com accepts GIF, JPG, PNG, PDF, DOC, and RTF. iPhone HEIC photos and WEBP images are silently rejected even though they look like normal image files in the email client.
Fix: Convert HEIC to JPG on the phone (Settings → Camera → Formats → Most Compatible) before sending, or open and re-export the file as PNG.
4. Category B — Arrived but SmartScan failed or stuck
Symptom: the receipt is visible in Expensify, but it's stuck in a status like “SmartScanning” forever, flipped to SCANFAILED, or is blocking your report from submitting with a “waiting for SmartScan to finish” warning.
Stuck on SmartScanning for hours
Cause: Expensify publishes that SmartScan takes “a few minutes to a few hours” depending on receipt quality and backlog volume. During month-end, tax season, and major holidays the human review queue balloons and multi-hour waits are normal.
Fix: Wait. If you're past 24 hours on the same expense, ping Concierge with the report ID so they can manually force it through the pipeline.
SCANFAILED state with manual-entry fallback
Cause: OCR confidence hit zero — usually a blurry, rotated, or glare-ruined image, a screenshot-of-a-screen, or a receipt cropped so tight half the line items are missing.
Fix: Tap the retry button on the expense. If retry fails twice, fill the fields manually. For future receipts, re-photograph flat-on, in daylight, and avoid screen-of-screen captures entirely — a downloaded PDF from the vendor portal works far better than a phone photo of the same email on a monitor.
Email signature image confusing OCR
Cause: When you forward an email, some clients convert your HTML signature (with logo) into an attached image. SmartScan sees two attachments and can route to the wrong one, or can combine them into a single garbled receipt.
Fix: Strip your signature before forwarding, or download the original invoice PDF from the vendor and attach just that to a fresh email.
Report blocked: “waiting for SmartScan to finish”
Cause: Expensify won't let you submit a report while any expense on it is still SmartScanning — that's by design, to avoid approving a report whose totals are about to change.
Fix: Either wait for SmartScan to finish, or detach the offending expense from the report, submit without it, and add it back later once the scan completes.
5. Category C — SmartScan extracted the wrong data
Symptom: SmartScan finished, the expense has values, but the amount, date, merchant, or currency is wrong. This is the “15% failure rate” Expensify's own blog admits to. The fix is always the same — edit it manually — but understanding why it got it wrong helps you choose better receipts going forward.
Amount picked up the tip line, not the total
Common on US restaurant receipts where the printed total includes a blank tip row and a “grand total” row. OCR sometimes grabs the larger number from whichever line happens to be cleanest. Fix in-place on the expense.
Date = statement date instead of transaction date
Credit card statements, subscription receipts, and “thanks for your purchase” confirmations often show two dates. SmartScan's vendor parsers usually pick correctly for big-name vendors, but for the long tail you get whichever date OCR read first.
Merchant = parent company, not the DBA
SmartScan returns “YUM Brands” instead of “Taco Bell”, or “Darden” instead of “Olive Garden.” Fine for reporting, annoying for categorisation. Edit manually, and accept that next month's receipt from the same vendor will still say the parent company — editing does not train SmartScan.
Currency mis-detection on international invoices
€, £, and $ are easy to confuse when the currency symbol is tiny or printed in a decorative font. SmartScan tends to default to your account currency on ambiguous receipts, which means a €100 EU invoice can land in your reports as $100 USD. Always double-check currency on foreign vendors.
6. Category D — Quota & plan limits
Symptom: SmartScan works for the first handful of receipts each month and then silently stops filling in data — or Concierge starts nudging you to upgrade whenever you submit a receipt.
Expensify's free plan includes a limited number of SmartScans per month. That number has been revised downward multiple times over the years and we deliberately aren't citing a specific figure here — check the current Expensify pricing page for the number that applies to your account today. Once you exceed the quota, SmartScan either stops running for the rest of the billing period or charges per additional scan.
Fix: if you're a freelancer or solo operator who only submits a handful of receipts per month, you can ride it out. If you're consistently over the limit, either upgrade your Expensify plan or automate the forwarding so you're only submitting receipts that actually need to be expensed — the next two sections cover why that matters and how to do it.
7. Category E — The forwarding-chain problem (the real root cause most guides miss)
Here's the one most troubleshooting articles never mention. If you've verified your secondary login, confirmed the file format, waited out the SmartScan queue, and the forwarded receipt from Gmail or Outlook still fails — the problem isn't on Expensify's side. It's the forwarding chain.
When Gmail or Outlook auto-forward a message, they don't just relay it untouched. They rewrite the envelope. Specifically:
What Gmail/Outlook auto-forward does to your receipt email
- Rewrites the envelope
From:header — the forwarded email arrives at Expensify with your address in the envelope, not the original vendor's. Expensify uses envelope sender to route the receipt to your account, and if the address it sees is wrong, the receipt can arrive but never associate with your expenses. - Strips or invalidates the DKIM signature — the original vendor's DKIM no longer matches the rewritten envelope, so any system that uses DKIM to trust the sender (Expensify's spam/routing logic included) has to fall back to heuristics.
- Sometimes re-encodes attachments — Gmail occasionally wraps forwarded PDFs inside a
message/rfc822container so the PDF is technically “inside” another email, and SmartScan never unwraps it. - Manual forward is only slightly better — clicking the Forward button in Gmail still rewrites the envelope From, just doesn't strip DKIM as aggressively. You'll still hit the routing problem.
The tell: the exact same receipt works when you manually forward it from your phone's Gmail app (which sometimes preserves more headers), but fails from a Gmail auto-forward rule. Or: a vendor receipt works when you email it fresh from a web portal, but the same receipt forwarded from your Outlook rule lands in limbo. That's the forwarding chain doing surgery on the envelope.
The only fixes are: (a) stop using auto-forward and manually forward each receipt from the native Gmail/Outlook UI, (b) use a desktop Outlook rule (which is less invasive than server-side rules), or (c) bypass the forwarding chain completely by using a tool that connects to your inbox directly and sends a clean, properly-addressed email to receipts@expensify.com on your behalf. That's what we cover next.
8. When to stop troubleshooting and switch approach
If you've spent the last hour clicking through Concierge threads, re-verifying your secondary login, reshooting receipts, and watching the same ones vanish again — take a breath. You're not doing anything wrong.
Honest framing: if you've worked through Categories A, B, C, and D, and receipts still vanish between your Gmail/Outlook auto-forward rule and Expensify, the problem is structural. The forwarding chain itself is rewriting headers you can't control, and no amount of configuration inside Expensify will fix a header that gets rewritten before Expensify ever sees it. Expensent doesn't fix SmartScan's OCR misreads or plan quotas — it only removes the forwarding-chain variable. But for most people stuck at this point, that's the entire problem.
At that point you have two realistic options. One: manually forward every receipt from the native Gmail or Outlook UI — works, but puts the burden back on you to remember every receipt, every month. Two: skip the forwarding chain entirely.
How Expensent bypasses the forwarding chain
- 1.Connect your inbox via OAuth — Gmail, Outlook, or IMAP. No password shared, no Gmail filters to configure, no auto-forward rules to verify.
- 2.Expensent sees your invoices inside your inbox — AI classification identifies the ones with attachments ready to forward, the ones that need a portal download, and the ones that need a second look.
- 3.One-click forward to receipts@expensify.com — or create a rule from an existing invoice so the next one like it is auto-forwarded when it arrives. No more remembering.
- 4.Expensent sends the forward from your verified secondary login with a clean envelope — no Gmail header rewriting, no DKIM strip, no rfc822 wrapping. Expensify's SmartScan pipeline sees the email exactly how it expects to see it.
Why this fixes Category E specifically
Because Expensent isn't forwarding an email through Gmail — it's composing a fresh email from your verified login address directly to receipts@expensify.com with the invoice PDF attached. There is no forwarding chain to mangle. 5-minute setup, and the Action Center catches anything the rules don't auto-forward so nothing slips.
Want the full setup walkthrough? Read the Expensent → Expensify setup guide, or see the Expensify integration page for the feature breakdown. Related reading: Gmail to Expensify workflow and never miss a receipt in Expensify.
9. Frequently Asked Questions
Why is my Expensify SmartScan taking so long?
What does "SCANFAILED" mean in Expensify?
Why don't my forwarded Gmail receipts show up in Expensify?
Can I retry a failed SmartScan?
Does Expensify use real humans to read my receipts?
Why did SmartScan extract the wrong amount?
How do I add a secondary email so my receipts show up?
Does editing a SmartScanned expense teach it to do better next time?
What file types does receipts@expensify.com accept?
Why does my receipt say "Checking" and never start scanning?
Done fighting SmartScan?
Connect your inbox, see every invoice in one place, decide what gets forwarded — and let the rules you set handle the rest as new invoices arrive. Expensent sends each receipt from your own verified login with a clean envelope, so SmartScan sees it the way it expects. 5-minute setup. No auto-forward rules to verify, no header rewriting, no more hunting for the one receipt that vanished.
Also see: pricing · how Expensent works