Known Limits and Errors
This page is deliberately candid: here are Memosa’s real limits, and here is what happens — and what to do — when you hit one. Every behavior described below reflects how the system actually works, not an idealized version.
Upload limits
Section titled “Upload limits”The web-chat upload enforces these caps:
| Limit | Value | Why |
|---|---|---|
| Max file size | 50 MB per file | Streamed to disk, never buffered fully into memory |
| Max files per upload | 20 files | Guards against oversized multipart requests |
| Accepted formats | .pdf, .xlsx, .xls, .csv | Validated by extension at upload |
What to do if you hit one:
- File too large: split or compress. A 60 MB OM with high-resolution images can often be exported to a smaller PDF; an oversized workbook can be trimmed to the tabs that matter.
- Unsupported format: convert first. A
.docxOM should be exported to PDF; a Google Sheet should be downloaded as.xlsxor.csv. The upload accepts only the four formats above. - Too many files at once: upload in batches. The same conversation accepts additional uploads.
Per-user conversation limit (web chat)
Section titled “Per-user conversation limit (web chat)”Web chat caps how many active (still-running, not yet finished) conversations you can have at once — 15 by default . Finished conversations (completed, errored) do not count toward the cap and are cleared lazily, so in normal use you will rarely see it.
What to do if you hit it: finish or let go of an in-progress conversation, or start fresh — completed conversations free their slot automatically.
Team isolation
Section titled “Team isolation”If you expected to see a deal or a cross-deal pattern and do not, the most likely reason is that it belongs to a different team or you have not been invited to that deal. See Roles and Permissions and Collaboration.
Privacy threshold on portfolio insights
Section titled “Privacy threshold on portfolio insights”Portfolio aggregates only report a statistic when at least three deals contribute to it. Below that threshold the insight is withheld rather than shown, so a metric can never be traced back to a single identifiable deal.
What to do: there is nothing to fix — this is intended privacy behavior. As your team finalizes more deals, more aggregates cross the threshold and appear. See Portfolio Insights.
Export is blocked until approval
Section titled “Export is blocked until approval”Investor Packet (DOCX/PDF) and OMCMS exports require the document to be in the APPROVED state. If you try to generate an Investor Packet on a document still in DRAFT or EDITING, the export is refused with a clear “document not approved” message that tells you to approve first — it does not produce a partial or broken file.
There is also a safe-by-default behavior: if Memosa briefly cannot verify a document’s approval state, it refuses the export rather than risking an unapproved one and asks you to retry in a moment. That is intentional — the gate fails closed.
What to do: approve the document, then retry the export. Approval is reversible — you can reopen to EDITING afterward and approve again. See The Approval Gate, Investor Packet, and Document Lifecycle.
A run was reclaimed as “stuck”
Section titled “A run was reclaimed as “stuck””A normal generation runs 15–25 minutes; ingest runs 2–5 minutes before it. To recover from rare worker crashes, Memosa reclaims runs that exceed generous headroom — generation past 4 hours and ingest past 20 minutes — and marks them errored so the conversation is not pinned forever.
What to do: retry. A reclaimed run means the worker did not finish cleanly; re-running is the right move. If it recurs on the same deal, capture the deal name and what you uploaded and report it — see Diagnosing Problems.
What is not yet supported
Section titled “What is not yet supported”In the spirit of honesty:
- Only the four upload formats above. Word documents, images uploaded standalone, and other formats must be converted to PDF, Excel, or CSV first.
- Cross-team / cross-organization sharing of cross-deal intelligence is not a feature — it is a deliberate isolation boundary, not a roadmap gap.
When something errors, capture this
Section titled “When something errors, capture this”To make any issue actionable, note:
- Which deal (name or thread).
- What you uploaded — file types and roughly how many.
- Which step — ingest, generation, a specific section, or an export.
- The message you saw, verbatim if possible.
Memosa surfaces actionable messages rather than stack traces, so the message itself usually points at the cause. Pair this with Diagnosing Problems to narrow it down.
Sources
Section titled “Sources”src/canvas/services/web_intake_config.py—max_file_size_bytes,allowed_extensions,max_files_per_upload,max_active_conversations,processing_stale_secs,generating_memo_stale_secs.src/investor_packet/generation_validator.py—_require_approved_state(409 when not approved; 503 fail-closed when approval state can’t be verified).src/canvas/services/portfolio_insights_queries.py—MIN_DEALS_FOR_AGGREGATE = 3(privacy threshold).src/canvas/auth/permissions.py—ROLE_HIERARCHY(team/deal access scoping).src/canvas/models/section_lifecycle.py—DocumentState/DOCUMENT_TRANSITIONS(approval is reversible via reopen).- Native memory:
feedback_fallback_is_still_bug.md(a fallback firing is a primary-path bug to report).