Why this matters
Most Base44 error troubleshooting is fragmentary. The platform's docs cover some errors. Feedback boards have user-reported errors with mixed-quality answers. Stack Overflow has a few. Nowhere is there a complete reference. This article aggregates what we have observed across audit engagements with one-line fixes per error.
The fixes here are surface-level. For errors that need deeper diagnosis — regression loops, performance problems, security issues — the row links to the relevant /fix/ page where we go deep. Use this reference as the first lookup; escalate to the linked page when the one-liner doesn't solve it.
How to use this reference
- Find your error in the table by symptom or message.
- Read the cause column to confirm the diagnosis matches your case.
- Apply the fix.
- If it doesn't work, follow the
/fix/link for deeper guidance.
We update this list quarterly. If you hit an error not in the list, contact us and we'll add it.
Generation and build errors
| Error | Symptom | Cause | Fix |
|---|---|---|---|
| Sandbox timeout during AI build | Generation hangs, then errors with "sandbox timeout" | Single prompt too large for the model's context | Split the prompt into smaller scoped requests, one component at a time |
| Unsupported dependency rejection | "Package X is not supported" during build | Backend function imports a package not in Deno's curated list | Replace with a supported package or call the dependency over HTTP from the function |
| Build fails — no clear reason | Deploy fails with generic error | Most often a syntax error in agent-generated code; sometimes a platform-side issue | Check the IDE for red underlines; if clean, check status.base44.com |
| npm package rejected | Specific package fails import | Package uses Node-only APIs (fs, child_process) | Use a Deno-compatible alternative or move logic to client side |
| Generation timeout | Agent stops responding mid-generation | Context window exceeded or platform-side latency spike | Refresh chat, scope the next prompt narrower, snapshot before retrying |
| Hallucinated field references | Code references a field that doesn't exist on the entity | Agent forgot the actual schema due to context loss | Re-prime the chat with a paste of the actual schema; see hallucinated fields fix |
Deployment and routing errors
| Error | Symptom | Cause | Fix |
|---|---|---|---|
| ISOLATE_INTERNAL_FAILURE | Backend function returns 500 with this message | Deno couldn't load the function — usually a syntax error or unsupported import | Open the function in IDE, fix syntax, verify imports are Deno-compatible |
| Backend function URL error in browser | "Network error" when calling functions.someFunction | Function hasn't deployed or the URL routing is broken | Verify the function shows as deployed in IDE; if yes, see routing fix below |
| 405 Method Not Allowed on POST | Function accepts POST in code but returns 405 | Routing bug where /functions/* gets caught by frontend router | Use the workaround in the linked fix article |
| Deployment failed with no clear reason | Publish completes but new code isn't live | Platform deployment partial-failure | Re-publish after a few minutes; if persistent, file ticket |
| Published changes not appearing | New code in IDE, old code in production | Browser cache or platform-side caching | Hard refresh (Cmd+Shift+R), then check via incognito to confirm |
| Domain stuck in pending | Custom domain shows "pending DNS verification" indefinitely | DNS propagation delay or wrong record type | Verify DNS via dig/nslookup; full guide in domain DNS pending fix |
| ERR_SSL_PROTOCOL_ERROR | Domain doesn't load over HTTPS | SSL provisioning hasn't completed or DNS is wrong | Wait 15–30 min; if persistent, re-add the domain |
| 429 on domain reconnect | Can't re-add a previously-deleted domain | Rate limited at platform level | Wait 24 hours, then retry |
Runtime errors
| Error | Symptom | Cause | Fix |
|---|---|---|---|
| White screen on click / page unresponsive | Page loads, then goes blank on interaction | Unhandled JS exception in the React tree | Open browser DevTools console; fix the error; redeploy |
| White screen for authenticated users only | Logged-out users see content, logged-in see blank | Auth-dependent code throwing on a missing field | Check the User entity for missing fields; add defaults |
| Blank screen after publishing | App was working, now blank | Field mismatch — UI references a field that no longer exists on entity | Restore the missing field or update UI to match new schema |
| App crashes on mobile | Works on desktop, crashes on phone | Memory or unsupported-API issue | Test in mobile Safari; check for desktop-only APIs (window.fs, etc.) |
| Buttons stop working after hours | Features that worked become non-functional | Often token expiry or platform-side cache invalidation | Hard refresh; if persists, re-deploy and check Token expiry handling |
| Editor hangs / extended loading | Base44 IDE itself becomes unresponsive | Project size has grown beyond efficient editor performance | Refactor large files; close other browser tabs; clear IDE cache |
| Apps fail after revert | "Unexpected error: contact support@modal.com" | Revert left runtime in inconsistent state | Re-publish current state; if needed, re-deploy from a known-good snapshot |
| 'dict' object has no attribute 'lower' | Chat error during a prompt | Platform-side issue with prompt parsing | Refresh chat, retry the prompt with simpler phrasing |
| Chat stuck on Thinking... | First prompt of a session hangs | Cold-start latency or platform-side queue | Wait 60s; if no response, refresh the chat |
| Discuss mode uses too many credits | Credits drop fast even without code changes | Each discuss-mode turn consumes credits | Switch to direct edit mode for routine work |
Data and entity errors
| Error | Symptom | Cause | Fix |
|---|---|---|---|
| Data disappears on return to app | Saved data vanishes when user logs back in | Often an Entity.list filter mismatch or schema change | Verify the entity still has the field; check filter; restore from snapshot |
| Cursor edit loads old version | Code edit overwrites recent changes | Editor sync issue with stale state | Refresh; manually merge via version history |
| 5,000 item limit exceeded | List call truncated at 5,000 records | Platform limit since November 2025 | Paginate with cursor on a sortable field |
| RLS not restricting data | Users see records they shouldn't | RLS rules misconfigured or not applied | Audit RLS rules; test with second account; full guide in security checklist |
| Workspace move irreversible | App now in wrong workspace, can't move back | Documented platform limitation | No fix; recreate the app or contact support |
| Database schema mismatch | Code references field, error says field doesn't exist | Schema drift between code and entity definition | Update entity to match code, or vice versa |
| File upload fails — invalid MIME type | File rejected even with valid format | Browser-reported MIME type doesn't match expected | Re-encode the file or relax MIME validation server-side |
| File upload exceeds 50MB | Large file upload fails | Platform per-file limit | Compress, split, or use external storage (S3) for large files |
Authentication errors
| Error | Symptom | Cause | Fix |
|---|---|---|---|
| Email verification loop | User can't get past verification step | Verification email lands in spam or platform-side issue | Check spam; resend; if persistent, contact support |
| Google OAuth redirects to error | Google login fails after consent | OAuth callback misconfigured or domain mismatch | Verify allowed origins/redirects in both Google Cloud and Base44 |
| Forgot password no email | Reset email never arrives | Often deliverability via shared sender pool | Use external email provider; check spam; verify email exists |
| Token expired (401 in function) | Backend SDK calls return 401 | User's JWT expired during long-running op | Catch 401, return session-expired response, force re-auth on frontend |
| User locked out | Can't log in despite correct credentials | Rate limit on failed auth or account flag | Wait 15 min; check Base44 admin panel for account state |
| SSO bypass risk (pre-July 2025) | Anyone can register on private app | The patched-but-structural issue | Verify org-domain check post-signup in a backend function |
Integration errors
| Error | Symptom | Cause | Fix |
|---|---|---|---|
| Stripe payment not processing | Checkout fails or succeeds but no record | API key mismatch (test vs live) or webhook not signed | Verify keys; validate webhook signatures; full guide in Stripe integration guide |
| Webhook only fires when users active | Subscription renewals fail at 3am | Documented platform behavior | External scheduler (cron-job.org) triggers a backend function |
| Webhook returns 500 on POST | Function deployed but webhook fails | Wrong URL, missing signature validation, or routing bug | Verify URL; check function logs; see routing fix |
| Stripe in-app purchase rejection | iOS app rejected for missing StoreKit | Apple requires StoreKit for digital goods | Use native iOS shell with StoreKit; route subscriptions through it |
| Hugging Face 401 from Base44 app | API returns 401 with valid key | Often token leakage or platform-side proxy issue | Move HF calls through backend function with secret in env vars |
| Custom integration deprecated | New integration won't add | Custom integrations deprecated post-March 2026 | Use a backend function calling the third-party API directly |
| Twilio SMS not sending | Send call succeeds but no message | Twilio account state, invalid number, or rate limit | Verify Twilio dashboard; check Twilio logs |
Billing and credit errors
| Error | Symptom | Cause | Fix |
|---|---|---|---|
| Excessive credit burn for minor changes | Small edits cost 10+ credits | Agent regenerates large code regions | Scope prompts narrowly; full guide in credit burn fix |
| Cannot purchase additional credits | UI shows option but purchase fails | Platform requires tier upgrade for more credits | Upgrade tier or wait for next cycle |
| Unused credits don't roll over | Remaining credits gone at month-end | Documented platform behavior — no rollover | Plan usage to consume the allowance each cycle |
| Hidden dual subscriptions | Charged twice per cycle | Platform billing bug — UI shows only one | Contact billing support; document both invoices |
| Pricing increased post-Wix | Tier costs more than at signup | Acquisition-era pricing changes | Re-evaluate tier fit; budget 25% headroom |
| Monthly plan not unlimited despite name | Hits credit cap on Monthly tier | Platform tier mapping not what naming suggests | Read tier docs carefully; choose tier on credit allowance, not name |
Performance and rate limit errors
| Error | Symptom | Cause | Fix |
|---|---|---|---|
| 429 Too Many Requests | Sudden burst of failed API calls | Platform rate limit on burst traffic | Add exponential backoff; reduce concurrency |
| 500 Internal Server Error from API | Sporadic failures on entity calls | Platform-side issue | Retry with backoff; check status.base44.com |
| Scheduled task not running | Cron-style job doesn't fire | Platform's scheduled functions are unreliable when no users active | External scheduler triggers the function via fetch |
| Editor extremely slow | IDE laggy on every keystroke | Project size or browser memory | Refactor; close tabs; clear IDE cache |
Mobile and app store errors
| Error | Symptom | Cause | Fix |
|---|---|---|---|
| App Store rejection — web wrapper | iOS submission rejected | Apple's "essentially a web view" policy | Add native features beyond the web view; or pivot to PWA-only |
| Build number not incrementing | Same IPA file rejected by App Store | Build version not updating between exports | Manually bump build number in export config |
| Push notifications not supported | Mobile users don't get notifications | Platform limitation on managed mobile builds | Use a third-party push provider (OneSignal) wired via custom code |
| Android camera missing | Camera UI doesn't appear on Android | Manifest permission missing | Add camera permission to Android manifest in build config |
Platform-wide and outage errors
| Error | Symptom | Cause | Fix |
|---|---|---|---|
| Platform outage | Multiple apps down simultaneously | Base44 infrastructure issue (Feb 3 2026 example) | Check status.base44.com; wait; no SLA recourse |
| Support ticket no response | Days/weeks with no reply | Documented post-acquisition support degradation | Escalate via public channels (Twitter, feedback board) if critical |
| Status page misleading | App down, status page green | Status page only reflects platform-wide outages | Maintain external synthetic monitor as ground truth |
Common error-handling mistakes
Treating every error as transient. Some errors require code fixes; retrying without diagnosis just burns credits.
Ignoring the function logs. They are the first place to look for backend errors and are routinely skipped.
Not shipping logs externally. Platform logs roll quickly. Without external retention, post-incident debugging is impossible.
Using shared error messages. Wrap every SDK call in try/catch and surface user-friendly messages. Default platform errors leak implementation details.
Skipping snapshots before risky operations. Many errors are recoverable via snapshot revert. No snapshot, no recovery.
Want us to triage your Base44 error log?
Our $497 audit reviews your function logs, identifies the top error patterns, and produces a prioritized fix list. Most apps have 5–15 distinct recurring error types; we resolve the top 3–5 in a 48-hour fix sprint after the audit. Order an audit or book a free 15-minute call.
Related reading
- Base44 SDK Reference — the API surface and its specific failure modes.
- Base44 Credit System Explained — billing-error diagnosis and prevention.
- Base44 Production Readiness Guide — the broader operational picture, including observability that catches errors early.