RiyalPlus — Error Reference
Every error in RiyalPlus carries a code in the form RP-XXXX. If you see one on screen, find it below for what it means and what to do.
A quick rule of thumb: codes that ask you to fix or change something are usually ones you can resolve yourself; codes that describe a system issue or say contact support are handled by our team. Payment and billing problems are always handled by the team directly — never the chat assistant. Reach the team from the Support page in the sidebar or at support@riyalplus.ai.
Uploading and reading your trial balance
RP-1001 — Extraction failed · shown as: "Data extraction failed — please try again." A temporary problem reading your file. Try the upload again; if it keeps failing, contact support.
RP-1002 — Unsupported file type · shown as: "Unsupported file type." The file isn't a format RiyalPlus can read. Upload your trial balance as an XLSX spreadsheet or a PDF and try again.
RP-1003 — File too large · shown as: "File too large (max 10 MB)." Remove rows that aren't accounts (summaries, blank rows) or split the file, then upload again.
RP-1004 — No accounts found · shown as: "No accounts found in file." Confirm you uploaded the trial balance (not a different report) and that it contains account names and balances.
RP-1006 — No data rows · shown as: "File contains no data rows." Re-export the trial balance from your accounting system and upload the new file.
RP-1007 — Unreadable AI result · shown as: "AI returned invalid JSON — please try again." A temporary processing glitch. Try again; if it persists, contact support.
RP-1011 — Rate limited · shown as: "Rate limited — please wait a moment and try again." Too many requests in a short time. Wait a minute and try again.
RP-1020 — Couldn't reach the AI service · shown as: "TB ingest failed to reach the AI service — please try again." A temporary connection problem. Try again; any points captured for the failed run are refunded automatically.
RP-1021 — Unreadable ingestion response · shown as: "TB ingest returned an unreadable response — please try again." A temporary glitch reading the result. Try again; a failed run on our side is auto-refunded.
RP-1022 — Accounting discrepancies found · shown as: "TB ingest validation found accounting-identity discrepancies — review the warnings." The figures don't fully reconcile (for example, debits and credits don't balance). Check the flagged accounts in your source file, correct them, and re-ingest.
RP-1023 — Couldn't validate the file · shown as: "TB ingest validation could not run any meaningful check on this file." Confirm it's a complete trial balance with account codes and balance columns, then re-upload.
RP-1024 — Validation failed · shown as: "TB ingest validation failed — duplicate codes or missing required fields." Fix the duplicate account codes or gaps in your source file and upload again.
RP-1025 — Request rejected by the AI service · shown as: "AI service rejected the request — this is not a transient error and retrying will not help." Contact support with the case so the team can look into it.
RP-1026 — Conversion unavailable · shown as: "Document conversion is unavailable on this server — contact support." A server-side converter needed for spreadsheet files is down — a system issue on our side, not your file. Contact support; uploading the trial balance as a PDF may work in the meantime.
RP-1027 — Couldn't read the spreadsheet · shown as: "Could not read the uploaded spreadsheet — please re-export as XLSX or upload a PDF instead." Re-export it as XLSX, or upload the trial balance as a PDF, and try again.
RP-1028 — Conversion timed out · shown as: "Document conversion timed out — please try again or upload the file as PDF." Try again, or upload it as a PDF.
RP-1029 — Trial balance too large · shown as: "The trial balance is too large to process…" Split it into multiple files, or remove rows that don't represent accounts, and upload again.
RP-1030 — Choose a sheet · shown as: "Sheet selection required for multi-sheet workbooks." Your workbook has more than one sheet. Pick the sheet that holds the trial balance when prompted, and ingestion continues.
RP-1031 — Not enough content · shown as: "File content is insufficient for trial balance extraction." Re-upload a complete trial balance file.
RP-1032 — Extraction timed out · shown as: "Trial balance extraction exceeded the time limit…" Try a smaller file; if it keeps timing out, contact support.
RP-1033 — Too few rows · shown as: "File has too few data rows to be a trial balance…" Re-upload the complete file.
RP-1034 — No balance columns · shown as: "No numeric balance columns were detected…" Make sure the debit/credit or balance columns are present and re-upload.
RP-1035 — Too large after filtering · shown as: "File is too large to process after filtering…" Remove summary rows and re-upload, or contact support.
RP-1036 — Corrections invalid · shown as: "TB corrections invalid — unknown field, account not found, or unparseable value." Check the field and value you edited and try again.
RP-1037 — Corrections locked · shown as: "TB corrections rejected — case has already been processed past extraction and cannot be edited." The case moved past the editable stage. Unlock the step if it's only approved, or start a fresh case for the period.
RP-1038 — Corrections out of date · shown as: "TB corrections conflict — data has been updated since last load. Refresh and try again." Refresh the page and re-apply your correction.
RP-1039 — Couldn't save corrections · shown as: "TB corrections could not be saved — storage write failed…" A temporary save problem; no changes were applied. Try again; contact support if it persists.
RP-1040 — Low extraction quality · shown as: "Extraction completed but quality is below threshold…" The file was read but with conflicting account codes. Review and correct the partial results, or re-upload a cleaner file.
RP-1042 — Old Excel format · shown as: "The .xls (Excel 97-2003) format is not currently supported…" Open the file in Excel, use "Save As" to create an .xlsx, and upload that.
Commercial-registry lookup
RP-1044 — Registry lookup unavailable · shown as: "The commercial-registry lookup service is unavailable right now. You can fill the fields manually or retry later." The connection to the commercial registry is down. Enter the entity's details manually, or retry later — nothing else is blocked.
RP-1045 — CR record not found · shown as: "No commercial-registry record was found for this CR number. Check the number, or fill the fields manually." Double-check the CR number for typos; if it's correct, enter the details manually and mention it to support.
Mapping your accounts
RP-2001 — Mapping failed · shown as: "Account mapping failed — please try again." A temporary problem suggesting the account mapping. Try again; contact support if it persists.
RP-2002 — Nothing to map · shown as: "No accounts to map." Confirm the trial balance ingested successfully before this step.
RP-2003 — Template conflict · shown as: "Template conflict — duplicate entry." A saved mapping template clashes with another. Review your saved templates and remove the duplicate.
Points, payments, and invoices
These are handled by our team directly. The chat assistant and help articles don't process payments, refunds, or amounts — if you hit one of these and it doesn't self-resolve, start a support conversation or email support@riyalplus.ai.
RP-2033 — Not enough points · shown as: "You don't have enough points for this. Top up your balance to continue." The action's price exceeds your balance, so nothing was charged. Buy points under Billing › Buy points, then retry.
RP-2010 — Payment couldn't be set up · shown as: "Payment processor could not create a payment request." The top-up payment couldn't be started. Wait a moment and try again; if it keeps failing, contact support.
RP-2011 — Payment couldn't be verified · shown as: "Payment verification with payment processor failed." Confirmation of your payment didn't come through. Contact support so the team can check the status before you try again.
RP-2015 — Invoice not generated · shown as: "Invoice generation failed. The payment was successful; the invoice will be issued by support." Your payment went through — only the invoice document didn't generate. The team will issue it.
RP-2024 — Invoice not found · shown as: "Invoice not found." Check your invoice list under Billing; if one you expected is missing, contact support.
RP-2030 — Refund couldn't complete · shown as: "Refund failed. The credit note is recorded; our team will resolve the refund." The refund record exists but couldn't finish automatically. The team will resolve it.
Team and roles
RP-2026 — No free seats · shown as: "All firm seats are in use…" Your included member seats are used up. Purchase an additional seat (a one-time points charge) or remove a member, then invite.
RP-2029 — Team needs an admin · shown as: "A firm must keep at least one admin…" You can't remove or demote the last Admin. Promote another member to Admin first, then retry.
RP-2031 — Read-only role — Your role on this account is Viewer, which can't modify anything. Ask an Admin to perform the action or to change your role.
RP-2032 — Not a team member — The person you tried to assign to a client isn't an accepted member of the account. Invite them first, or pick an existing member.
RP-2034 — Admin-only action — Billing, seat purchases, and member management require the Admin role. Ask your account's Admin.
Creating and managing cases
RP-3028 — Select a filing entity · shown as: "Select which filing entity this case is for." Your account has more than one filing entity, and RiyalPlus never guesses which company a filing belongs to. Pick the entity and continue.
RP-3029 — Product not available · shown as: "One of the selected products isn't available — adjust your selection and try again." The selected product code is unknown, inactive, or not offered in this release. Correct the selection.
RP-3030 — Case can't be deleted · shown as: "This case has an issued invoice and can't be deleted — archive it instead." A case with billing records behind it is archive-only.
RP-3031 — Case is a parent · shown as: "This case is the basis for a later filing — delete that filing first." A later sequential filing carries forward from this case; remove or re-link the successor first.
RP-3032 — Company can't be deleted · shown as: "This company has filings against it and can't be deleted — archive it instead." A filing entity with cases behind it is archive-only.
RP-3004 — Case past editable stage · shown as: "Case is past the editable phase — ECI pinning cannot be changed." The company information pinned to this case can't be changed at this stage. To use updated company data, create a new case for the period.
RP-3005 — Linkage problem · shown as: "Case linkage violation — parent filing is invalid for this successor." The prior-year case this filing links to isn't valid (for example, it isn't computed, or the periods overlap). Check the parent case, or start without linking.
RP-3006 — Sequential needs a parent · shown as: "filing_mode SEQUENTIAL requires parent_case_id." Choose the prior case to link to, or pick a non-sequential filing type.
RP-3007 — Wrong type for a linked case · shown as: "Non-sequential filing must not have parent_case_id." Either set the type to sequential or remove the link.
Computing your declaration
RP-3001 — Ownership doesn't total 100% · shown as: "Ownership percentages must sum to 100%." Correct the percentages on the filing entity so they total 100%, then recompute.
RP-3002 — Missing required fields · shown as: "Missing required fields for computation." Complete the flagged fields and run compute again.
RP-3008 — Opening balances don't balance · shown as: "Opening balance sheet does not balance." Correct the figures so opening assets equal liabilities plus equity.
RP-3009 — Opening balances needed · shown as: "Opening balance capture required for FIRST_TIME_IN_APP filing mode." Enter the opening balances (last year's closing balance sheet) using the opening-balance form, then compute.
RP-3010 — Inventory method locked · shown as: "Inventory method cannot be changed after the case is computed." To change it, start a new case for the period.
RP-3023 — Regulatory inputs didn't save · shown as: "Your regulatory inputs could not be saved — please try again." A temporary save problem. Try again; contact support if it persists.
RP-3036 — Certification required · shown as: "Answer the certification questions before computing — complete the Certification step and try again." Open the Certification step, answer the questions, and recompute.
RP-3039 — Step locked · shown as: "This step is approved and locked — unlock it to edit." Unlock the step, make the change, and re-run the downstream steps.
RP-COMPUTE-OIL-BRACKETS-MISSING — Oil-sector rates pending · shown as: "Oil/hydrocarbon producer shareholders are present on this case…" The special tax-rate brackets for oil-sector cases aren't yet available, so this case can't be computed. Contact support if this applies to you.
RP-COMPUTE-OLD-ZIR-UNSUPPORTED — Old Zakat regulation · shown as: "Old ZIR (FY 2023 and earlier) filings are not supported in this release…" Only filings from the 2024 fiscal year onward are supported.
RP-COMPANY-NO-PRIOR-CASE — Nothing to copy · shown as: "No prior case with shareholders found for this company…" There's no earlier case to copy shareholders from. Enter them manually for this case.
Withholding Tax (WHT)
RP-3024 — Return filed and locked · shown as: "This WHT return has been filed and is locked — open the correct month or contact support." A filed month is immutable. Record the change in the correct open month.
RP-3025 — Action not allowed in this state · shown as: "This WHT return's state does not allow that action — review the register and recompute first." For example, marking a month nil while payments exist. Review the payment register and recompute.
RP-3026 — WHT compute failed · shown as: "The WHT return could not be computed — please try again." A temporary problem. Try again; contact support if it persists.
RP-3027 — Payment date outside the month · shown as: "The payment date is outside this return's month — correct the date or add it to the matching month."
RP-3033 — Beneficiary can't be deleted · shown as: "This beneficiary has payments recorded against it and can't be deleted — archive it instead."
RP-3034 — WHT case archived · shown as: "This WHT case is archived — unarchive it to keep filing for this year."
RP-3035 — AEP not active · shown as: "Automatic extraction isn't active on this WHT case — activate AEP to upload payment documents." AEP is an optional one-time upgrade; activate it, or enter payments manually.
Transfer Pricing (TP)
RP-3040 — TP case archived · shown as: "This TP case is archived — unarchive it to continue working on this disclosure."
VAT
RP-3041 — VAT case archived · shown as: "This VAT case is archived — unarchive it to continue working on its periods."
RP-3042 — Period filed and immutable · shown as: "This VAT period is filed and immutable. To fix an error, use the corrections field of the next period (small differences) or a corrective return (larger ones)."
RETT
RP-3043 — Transaction filed and immutable · shown as: "This RETT transaction is filed and immutable. Corrections or cancellations go through a linked refund/correction request." Mirrors ZATCA's own correction process.
RP-3044 — Usufruct needs an asserted rate · shown as: "The usufruct (>50 years) path needs a user-asserted present-value discount rate with its basis (accredited valuer, or a ZATCA ruling). The regulation specifies no rate — RiyalPlus will never guess one." Enter the discount rate and its basis to proceed.
Qawaem deposit
RP-3045 — XBRL not yet available · shown as: "The tagged XBRL instance cannot be generated yet… The validated statements and the filing pack are available; deposit manually on the Qawaem portal." Direct XBRL export is coming soon; the validated pack covers the manual deposit meanwhile.
RP-3046 — Generate statements first · shown as: "The Qawaem deposit needs generated financial statements. Run the FSG step on this case first (compute, then generate the statements)."
Support assistant and tickets
RP-3014 — Assistant unavailable · shown as: "The support assistant is temporarily unavailable. Please try again shortly." Try again shortly, or email support@riyalplus.ai.
RP-3015 — Ticket not found · shown as: "Support ticket not found." Check the link or open the Support page to find your conversations.
RP-3016 — Conversation expired · shown as: "This conversation has expired. Please start a new one." Start a new conversation from the Support page; your history stays listed.
RP-3017 — No access to this ticket · shown as: "You don't have access to this support conversation or ticket." Sign in with the account that created it.
Exporting your documents
RP-4001 — PDF generation failed · shown as: "PDF generation failed." Try the export again; contact support if it persists.
RP-4002 — Recompute needed · shown as: "Re-compute required before exporting financial statements." Run compute again, then export.
RP-4004 — No result to export · shown as: "No computed result found. Run computation first."
Verifying documents (Verify+)
RP-5001 — Document read failed · shown as: "Document extraction failed — please try again."
RP-5002 — Wrong document type · shown as: "Unsupported document type for this line." Upload a supported document for that line.
RP-5003 — Amount not found · shown as: "Could not extract amount from document." Make sure the figure is clearly visible, or upload a clearer copy.
Signing in and access
RP-6001 — Session expired · shown as: "Session expired — please sign in again."
RP-6002 — Not authorized · shown as: "Unauthorized access." You're not signed in, or your access has ended. Sign in again.
RP-6003 — Admin access denied · shown as: "Admin access denied." Your role doesn't have admin access for this action. Ask your account's Admin.
Files and uploads
RP-7001 — Upload failed · shown as: "File upload failed — please try again."
RP-7002 — Download failed · shown as: "File download failed — please try again."
The warnings panel
RP-7011 — Action not available · shown as: "Invalid action on warning…" Pick one of the offered actions.
RP-7012 — Override reason not allowed · shown as: "Override reason not allowed…" Choose a reason from the list.
RP-7013 — Warning not found · shown as: "Warning not found for this case." The warning may have cleared on recompute. Refresh the page.
System errors
These point to something on our side. Your data is safe; our team is alerted automatically.
RP-9001 — Database connection error · shown as: "Database connection error." Wait a few minutes and try again; contact support if it continues.
RP-9002 — AI service configuration error · shown as: "AI service configuration error." A configuration issue on our side. Contact support.
RP-9003 — Unexpected server error · shown as: "Unexpected server error." Try again; contact support if it persists.
RP-9999 — Unexpected error (with reference) · shown as: "An unexpected error occurred. Reference: … Please contact support if this persists." Note the reference code and include it when you contact support — it lets the team locate the exact event.
Internal and retired codes (reference only)
These codes are not shown to users in normal use — they're handled automatically, belong to retired features, or are internal. Listed for completeness.
- RP-1005, RP-1010 — retired extraction-era codes; their paths now route through the current upload codes.
- RP-1041, RP-1043 — internal extraction fallbacks; the system retries automatically.
- RP-2004 — internal ingest-refund code; no longer raised.
- RP-2012, RP-2013, RP-2016, RP-2017, RP-2018, RP-2020, RP-2021 — subscription-era and band-pricing codes; RiyalPlus is points-only with no subscriptions, so these no longer apply to new activity.
- RP-2022, RP-2023 — legacy trial-case limits; new accounts receive an opening points grant instead of trial cases.
- RP-2025 — internal invoice-integrity check; a system matter handled by the team.
- RP-2027, RP-2028 — retired invitation codes.
- RP-3018 — support email delivery failed (internal); the ticket is created regardless and the team follows up.
- RP-7010, RP-9004, RP-8001 — internal system checks / deprecated quotas; never affect your filing.
- RP-COMPUTE-MID-YEAR-OWNERSHIP-UNSUPPORTED — retired; mid-year ownership changes are computed automatically now.

