ErrLookup › actualbudget/actual
actualbudget/actual
A local-first personal finance app · TypeScript · 1,697 source files
Analyzed at d4334cb6e6 on 2026-08-29. 511 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| Error importing budget: ${result.error} | exception | error | import, budget, file-format, api |
| Error importing budget: no budget was loaded | exception | error | import, budget, api, version-mismatch |
| Error exporting budget: ${result.error} | exception | error | export, budget, api, backup |
| Error exporting budget: no data was returned | exception | error | export, budget, api, version-mismatch |
| @actual-app/api requires a node version ${minimumNodeVersion | exception | error | node, environment, version-check, api |
| Invalid --name: must be a non-empty string. | validation | error | cli, validation, arguments, accounts |
| No update fields provided. Use --name or --offbudget. | validation | error | cli, validation, arguments, accounts |
| Invalid cutoff date: expected a valid date (e.g. YYYY-MM-DD) | validation | error | cli, validation, date, arguments |
| No update fields provided. Use --name or --hidden. | validation | error | cli, validation, arguments, categories |
| No update fields provided. Use --name or --hidden. | validation | error | cli, validation, arguments, category-groups |
| No fields to update. Use --name to specify a new name. | validation | error | cli, validation, missing-argument |
| No valid payee IDs provided in --ids. Provide comma-separate | validation | error | cli, validation, missing-argument |
| --order-by contains an empty field | validation | error | cli, validation, query |
| Invalid order field in "${trimmed}". Field name cannot be em | validation | error | cli, validation, query |
| Invalid order direction "${direction}" for field "${field}". | validation | error | cli, validation, query |
| --table is required when the input file lacks a "table" fiel | validation | error | cli, validation, query, missing-field |
| --last implies --table transactions. Cannot use with --table | validation | error | cli, validation, conflicting-flags |
| --last and --limit are mutually exclusive | validation | error | cli, validation, conflicting-flags |
| --table is required (or use --file or --last) | validation | error | cli, validation, missing-argument, query |
| Unknown table "${table}". Available tables: ${AVAILABLE_TABL | validation | error | cli, validation, query, invalid-enum-value |
| --where and --filter are mutually exclusive | validation | error | cli, aql, invalid-flags, mutually-exclusive-options |
| --count and --select are mutually exclusive | validation | error | cli, aql, invalid-flags, mutually-exclusive-options |
| Query file must contain a JSON object | validation | error | cli, json, input-validation, aql |
| Query result missing data | exception | error | cli, aql, api-response, version-mismatch |
| Unknown table "${table}". Available tables: ${Object.keys(TA | validation | error | cli, invalid-table-name, aql, typo |
| Sync ID is required for sync ${flag}. Set --sync-id or ACTUA | validation | error | cli, sync, missing-argument, environment-variable |
| At least one of --tag, --color, or --description is required | validation | error | cli, tags, missing-argument, invalid-flags |
| Invalid config file: expected an object with keys: ${configF | validation | error | cli, config, json, validation |
| Invalid config file: unknown key "${key}" | validation | error | cli, config, validation, unknown-key |
| Invalid config file: key "${key}" must be a string, got ${ty | validation | error | cli, config, type-error, validation |
| Invalid config file: key "${key}" must be a non-negative int | validation | error | config, validation, cli |
| Invalid config file: key "${key}" must be a boolean, got ${t | validation | error | config, validation, types |
| Invalid ${name}: expected a non-negative integer, got ${valu | validation | error | cli, validation, options |
| Server URL is required. Set --server-url, ACTUAL_SERVER_URL | validation | error | config, cli, env, missing-option |
| Authentication required. Set --password/--session-token, ACT | validation | error | auth, cli, env, missing-option |
| Could not resolve on-disk budget id for syncId ${syncId} aft | exception | error | sync, budget, cli, network |
| Authentication required. Provide --password or --session-tok | validation | error | auth, cli, env |
| Sync ID is required for this command. Set --sync-id or ACTUA | validation | error | cli, config, missing-option, budget |
| Cannot use both --data and --file | validation | error | cli, options, input |
| Either --data or --file is required | validation | error | cli, input, missing-option |
| lockedMessage(timeoutMs) | exception | error | locking, concurrency, timeout |
| Invalid ${flagName}: "${value}". Expected "true" or "false". | validation | error | cli, validation, argument-parsing |
| Invalid ${flagName}: "${value}". Expected an integer. | validation | error | cli, validation, argument-parsing |
| Invalid ${flagName}: "${value}". Expected a non-negative int | validation | error | cli, validation, argument-parsing |
| Invalid ${source}: "${raw}". Expected "true", "false", "1", | validation | error | cli, environment, validation |
| InitialFocus expects a single valid React element as its chi | exception | error | react, component-api, validation |
| TrieNode for key ${k} could not be found | exception | critical | crdt, merkle, data-corruption, sync |
| Timestamp.InvalidError: ${data.timestamp} | exception | critical | crdt, timestamp, deserialization, sync |
| Timestamp.ClockDriftError | exception | critical | crdt, timestamp, clock-drift, sync |
| Timestamp.OverflowError | exception | error | crdt, clock, overflow, hybrid-logical-clock |
| Unknown budget action type: ${String(type)} | exception | error | react, budget, switch-exhaustiveness, developer-error |
| Unable to duplicate a budget that is not local. | exception | error | budget, local-first, missing-argument, redux-thunk |
| zipMeta ? getUnsafeZipError(zipMeta) : error | exception | error | import, zip, file-validation, budget |
| No id returned from download. | exception | error | sync-server, download, protocol-mismatch, invariant |
| response.reason || response.error_code | exception | error | bank-sync, api-key, sync-server, provider-credentials |
| response.reason || response.error || fallbackMessage | exception | error | bank-sync, sync-server, server-error, provider-credentials |
| Budget file ID is required. | exception | error | banksync, budget-file, config, client-side |
| results.reason || results.error_code | exception | error | banksync, simplefin, network, api-error |
| results.reason || results.error | exception | error | banksync, simplefin, network, api-error |
| results.reason | exception | error | banksync, pluggyai, api-error, credentials |
| results.error | exception | error | banksync, pluggyai, api-error |
| Unknown display type: ${String(displayType)} | exception | error | typescript, exhaustiveness, budget-templates, client-side |
| Template cannot be null | exception | error | null, budget-templates, client-side, validation |
| An error occurred while parsing the template | exception | error | parsing, budget-templates, template-syntax, client-side |
| Unknown template type: ${String(type satisfies undefined)} | exception | error | typescript, exhaustiveness, budget-templates, reducer |
| Unknown display type: ${String(visualType satisfies never)} | exception | error | typescript, exhaustiveness, budget-templates, reducer |
| Unknown display type: ${String(type satisfies never)} | exception | error | typescript, exhaustiveness, reducer, react |
| findSort: item not found: ${targetId} | exception | error | budget, reorder, stale-state, ui |
| Unhandled action type: ${action.type} | exception | error | react, reducer, filters, typescript |
| Unsupported template type reached migration | exception | warning | budget-templates, migration, automations, parsing |
| Unhandled template type | exception | error | typescript, exhaustiveness, migration, budget-templates |
| Error loading data into the spreadsheet. | exception | error | reports, spreadsheet, configuration, typescript |
| Invalid start date format | exception | error | date-parsing, reports, calendar, date-fns |
| Invalid end date format | validation | error | date-parsing, reports, validation |
| Unsupported summary type | validation | error | reports, configuration, type-union |
| Invalid date format provided | validation | error | date-parsing, reports, validation |
| Invalid date values provided | validation | error | date-parsing, reports, validation |
| Start date must be before or equal to end date. | validation | error | date-parsing, reports, validation |
| Unsupported schedule status for tooltip: ${scheduleStatus} | exception | error | schedules, i18n, switch-default |
| Value is not a number (${typeof value}): ${value} | validation | error | formatting, type-error, validation |
| Invalid numeric value: ${localValue} | validation | error | formatting, parsing, legacy |
| Value is not a number (${typeof localValue}): ${localValue} | validation | error | formatting, type-error, validation |
| Unknown format type: ${type} | exception | error | formatting, typescript, switch-default |
| Failed to create sheet | exception | error | hyperformula, spreadsheet, initialization |
| Formula error: ${cellValue.type} | exception | error | hyperformula, formula, spreadsheet |
| Invalid BUDGET_QUERY dimension: ${dimension} | validation | error | validation, budget, formula |
| Failed to fetch catalog: ${response.statusText} | http | warning | network, fetch, http |
| Invalid catalog format: expected an array | validation | warning | validation, json, schema |
| Unknown locale ${language} | exception | error | i18n, locale, configuration |
| Account with ID ${accountId} does not exist. | validation | error | state, react-query, not-found |
| Geolocation is not supported by this browser | exception | error | browser, geolocation, compatibility |
| Invalid repo: must be in "owner/repo" format | validation | error | validation, input, github |
| Invalid repo: must include both owner and repo name | validation | error | validation, input, github |
| Failed to fetch CSS from ${url}: ${response.status} ${respon | http | error | network, http, fetch, theme-installation |
| Invalid font-family value for "${property}": value must not | validation | error | css, validation, font-family, theme |
| Invalid font-family value for "${property}": empty font name | validation | error | css, validation, font-family, theme |
| Invalid font-family value for "${property}": function calls | validation | error | css, security, validation, font-family |
| Invalid value "${trimmedValue}" for property "${property}". | validation | error | css, validation, allowlist, theme |
| Invalid font src: only data: URIs are allowed in @font-face. | validation | error | css, security, privacy, font-face, validation |
| Font file exceeds maximum size of ${MAX_FONT_FILE_SIZE / 102 | validation | error | css, font-face, size-limit, validation |
| Total embedded font data exceeds maximum of ${MAX_TOTAL_FONT | validation | error | css, font-face, size-limit, validation |
| Theme CSS contains forbidden at-rules (@import, @media, @key | validation | error | css, security, validation, at-rules |
| Theme CSS contains nested blocks or additional selectors. On | validation | error | css, validation, theme, syntax |
| Invalid CSS declaration: "${decl}" | validation | error | css, validation, custom-themes, syntax |
| Invalid property "${property}". Only CSS custom properties ( | validation | error | css, validation, custom-themes |
| Invalid property "${property}". Property name cannot be empt | validation | error | css, validation, custom-themes |
| Invalid property "${property}". Property name cannot be empt | validation | error | css, validation, custom-themes |
| Invalid property "${property}". Property name contains inval | validation | error | css, validation, custom-themes, naming |
| Invalid property "${property}". Property name cannot end wit | validation | error | css, validation, custom-themes, naming |
| Theme CSS must contain :root { ... } with CSS variable defin | validation | error | css, validation, custom-themes, structure |
| Remote font URL "${path}" is not allowed. Only relative path | validation | error | |
| Font path "${path}" is not allowed. Only relative paths with | validation | error | |
| Unsupported font file extension "${ext}". Supported: ${Objec | validation | error | |
| Failed to fetch font file "${ref.cleanPath}" from ${fontUrl} | exception | error | |
| Font file "${ref.cleanPath}" exceeds maximum size of ${MAX_F | validation | error | |
| The from and to directories must be provided | validation | error | |
| The destination must not be a subdirectory of the current di | validation | error | |
| The destination directory does not exist | validation | error | |
| Reload not implemented in electron app | exception | error | |
| applyAppUpdate not implemented in electron app | exception | error | electron, environment, api-not-implemented |
| The environment variable `lootCoreScript` is not defined. Pl | exception | critical | electron, env-var, startup |
| Failed to init the server bundle after all retries: ${String | exception | critical | electron, startup, init-failure, retry-exhausted |
| ACTUAL_DATA_DIR is not set | exception | error | electron, env-var, window-state |
| API request redirected | exception | error | fetch, auth, redirect, network |
| ACTUAL_DATA_DIR env variable is required | exception | critical | electron, env-var, fs |
| File does not exist: ${filepath} | exception | error | fs, indexeddb, file-not-found, web |
| Failed to copy SQL file from ${frompath} to ${topath}: ${sec | exception | error | fs, sqlite, copy-failure |
| getModifiedTime not supported on the web (only used for back | exception | warning | fs, web, not-implemented, backups |
| Document directory is not set | exception | critical | initialization, filesystem, lifecycle, server |
| getDocumentDir: id is falsy: ${id} | exception | error | validation, filesystem, null-check, server |
| Invalid budget id "${id}". Check the id of your budget in th | validation | error | validation, path-traversal, security, filesystem |
indexeddb-quota-error indexeddb-quota-error | error_code | critical | indexeddb, storage-quota, browser, data-loss |
| Account with ID ${upgradingId} not found. | exception | error | bank-sync, gocardless, missing-record, validation |
| Transfer payee with account ID ${id} not found. | exception | error | accounts, payees, data-integrity, missing-record |
| Transfer payee with account ID ${transferAccountId} not foun | exception | error | database, payee, account-close, data-integrity |
| Failed to get server config. | exception | error | configuration, sync-server, local-only |
| Account with ID ${id} not found. | exception | error | |
| Bank with ID ${bankId} not found. | exception | error | bank-sync, database, invalid-id |
| Unknown payee name normalization: ${String(normalization)} | validation | error | validation, typescript, api |
| `date` is required when adding a transaction | validation | error | validation, transactions, missing-field, api |
| Amount is invalid, must be an integer: ${trans.amount} | validation | error | validation, transactions, amount, api |
| Subtransaction amount is invalid, must be an integer: ${sub. | validation | error | validation, transactions, data-integrity, integer-cents |
| `payeeName` is required when adding a transaction | validation | error | bank-sync, validation, missing-field, payee |
| Unrecognized bank-sync provider: ${acctRow.account_sync_sour | exception | error | bank-sync, configuration, unsupported-provider, data-integrity |
| Table "${tableName}" does not exist in the schema | exception | error | aql, query-compiler, schema, typo |
| Field "${field}" does not exist in table "${tableName}" | exception | error | aql, query, schema, compile-error |
| Invalid path: ${path} | exception | error | aql, query, path, compile-error |
| Path error: ${tableName} table does not exist | exception | error | aql, query, path, schema, compile-error |
| Field not joinable on table ${tableName}: "${field}" | exception | error | aql, query, join, path, compile-error |
| Path does not exist: | exception | error | aql, query, path, compile-error |
| Invalid field name, must be a string | exception | error | aql, query, types, compile-error |
| Bad ${type} format: ${str} | exception | error | aql, date, format, compile-error |
| Parameter "${param.paramName}" can't convert to ${type} (alr | exception | error | aql, parameters, types, compile-error |
| A non-literal null doesn't make sense | exception | error | aql, null, ast, compile-error |
| Casting string fields to dates is not supported | exception | error | aql, date, casting, compile-error |
| Can't cast ${expr.type} to date | exception | error | aql, query-compiler, type-cast, dates |
| Can't cast ${expr.type} to date-month | exception | error | aql, query-compiler, type-cast, dates |
| Can't cast ${expr.type} to date-year | exception | error | aql, query-compiler, type-cast, dates |
| Can't convert ${expr.type} to ${type} | exception | error | aql, query-compiler, type-cast |
| Too few arguments | exception | error | aql, query-compiler, argument-validation |
| Too many arguments | exception | error | aql, query-compiler, argument-validation |
| This function cannot track error data. It needs to accept th | exception | error | aql, query-compiler, internal-api, state |
| `undefined` is not a valid query value | exception | error | aql, query-compiler, undefined, literal-validation |
| Unsupported type of expression: | exception | error | aql, query-compiler, unsupported-type, literal-validation |
| Invalid field reference: | exception | error | aql, query-compiler, field-reference |
| Unknown property "${name}." Did you mean to call a function? | exception | error | aql, query-compiler, syntax |
| Literal not passed to $literal | exception | error | aql, query-compiler, literal |
| Unknown function: ${name} | exception | error | aql, query-compiler, unknown-function |
| Unknown operator: ${op} | exception | error | aql, query-compiler, unknown-operator |
| Table "${pathInfo.tableName}" does not exist | exception | error | aql, schema, table-not-found |
| Invalid field "${name}", are you trying to select a function | exception | error | aql, query-compiler, alias-required |
| Invalid order direction: | exception | error | aql, query-compiler, invalid-argument |
| Invalid internal table filter: only object filters are suppo | exception | error | aql, schema, internal-table-filters |
| Invalid internal table filter: field names cannot contain pa | exception | error | aql, schema, internal-table-filters |
| Parameter ${name} not provided to query | exception | error | aql, query-execution, missing-parameter |
| Query value cannot be undefined | exception | error | query, validation, undefined, aql |
| Invalid date: | exception | error | date, validation, aql, format |
| Invalid id, must be string: | exception | error | id, types, validation, aql |
| Can't convert to integer: | exception | error | integer, types, validation, aql |
| Table "${table}" does not exist | exception | critical | schema, table, aql, typo |
| Field "${field}" does not exist on table ${table}: ${JSON.st | exception | error | schema, field, validation, aql |
| "${field}" is required for table "${table}": ${JSON.stringif | exception | error | schema, required-field, validation, aql |
| Error inserting: table "${table}" does not exist | exception | critical | schema, insert, table, aql |
| Error updating: table "${table}" does not exist | exception | critical | schema, update, table, aql |
| Invalid "splits" option for transactions: "${splitType}" | exception | error | aql, query, invalid-option |
| Invalid "categories" option for category_groups: "${categori | exception | error | aql, query, invalid-option |
| No sync server configured. | exception | error | sync-server, configuration, missing-env-var |
| login: User token not set | exception | error | auth, sync-server, unexpected-response |
| A category with the name "${category.name}" already exists. | exception | error | budget, category, unique-constraint, duplicate |
| Category with id ${id} not found. | exception | error | budget, category, not-found |
| Transfer category with id ${transferId} not found. | exception | error | budget, category, not-found, transfer |
| Cannot transfer between income and expense categories. | exception | error | budget, category, validation, income-expense |
| Schedule ${t.name ?? t.scheduleId} does not exist | exception | error | budget-templates, schedule, not-found |
| Schedule ${t.name.trim()} does not exist | exception | error | goal-templates, schedule, validation |
| Schedule template has no scheduleId or name | exception | error | goal-templates, schedule, template-syntax |
| Schedule and By templates must be the same priority level. F | exception | error | goal-templates, priority, schedule, validation |
| Target month has passed, remove or update the target month | exception | error | goal-templates, date, validation |
| Category "${raw}" is not found in available income categorie | exception | error | goal-templates, percentage, category, validation |
| Only one `up to` allowed per category | exception | error | goal-templates, limit, duplicate, validation |
| Weekly limit requires a start date (YYYY-MM-DD) | exception | error | goal-templates, limit, weekly, template-syntax |
| Invalid limit period. Check template syntax | exception | error | goal-templates, limit, template-syntax, validation |
| Only one spend template is allowed per category | exception | error | goal-templates, spend, duplicate, validation |
| Only one #goal is allowed per category | exception | error | goal-templates, goal, duplicate, validation |
| Unrecognized periodic period: ${String(period)} | exception | error | budget-template, validation, config |
| Income category "${template.category}" not found for percent | exception | error | budget-template, validation, category-lookup |
| Cleanup group name cannot be empty | exception | error | validation, budget-cleanup, input |
| Unresolved cleanup group for overspend row: ${row.group} | exception | error | budget-cleanup, dangling-reference, validation |
| Unknown cleanup row type: ${String(row)} | exception | error | budget-cleanup, validation, schema-mismatch |
| Invalid adjustment percentage (${parsedTemplate.adjustment}% | exception | error | budget, template-validation, input-validation |
| ${message} | validation | error | budget, validation, naming |
| Failed to duplicate budget file: ${error.message} | exception | error | filesystem, io, budget |
| File not found at the provided path: ${filepath} | exception | error | filesystem, import, file-not-found |
| Either `filepath` or `buffer` must be given | exception | error | import, validation, missing-argument |
| Invalid upload filename | exception | error | upload, filename, validation, browser |
| Error reading backup zip file | exception | error | backup, zip, corruption, restore |
| Backup zip file is missing db.sqlite or metadata.json | exception | error | backup, zip, schema, restore |
| ${text} | http | error | http, network, cloud-storage, fetch |
| Invalid dashboard.widgets data type: it must be an array of | validation | error | dashboard, validation, import, schema |
| Invalid widget.${idx}.x data-type for value ${widget.x}. | validation | error | dashboard, validation, import, types |
| Invalid widget.${idx}.y data-type for value ${widget.y}. | validation | error | dashboard, validation, import, types |
| Invalid widget.${idx}.width data-type for value ${widget.wid | validation | error | dashboard, validation, import, types |
| Invalid widget.${idx}.height data-type for value ${widget.he | validation | error | dashboard, validation, import, types |
| Invalid widget.${idx}.type value ${String(widget.type)}. | validation | error | validation, dashboard, import |
| Cannot delete the last dashboard page | exception | error | dashboard, guard, business-rule |
| Widget not found: ${id} | exception | error | not-found, dashboard, lookup |
| Unsupported widget type: ${widget.type} | exception | error | dashboard, data-integrity, guard |
| File not found at the provided path: ${filePath} | exception | error | filesystem, import, path |
json-parse-error Invalid JSON file. | exception | error | json, import, parse-error |
validation-error err.message (rethrown ValidationError message) | exception | error | validation, import, schema |
internal-error Internal error occurred during import. | exception | error | internal, import, database |
| A ${existingGroup.hidden ? 'hidden ' : ''}'${existingGroup.n | exception | error | duplicate, categories, constraint |
| Category '${category.name}' already exists in group '${categ | exception | error | validation, duplicate, categories, database |
| An '${existingGroup.name}' account group already exists. | exception | error | validation, duplicate, account-groups, database |
| Transaction not found: ${id} | exception | error | not-found, transactions, stale-data, sync |
| Transaction ${id} does not belong to account ${accountId} | exception | error | validation, transactions, ownership, argument-mismatch |
| Schedule not found: ${id} | exception | error | not-found, schedules, stale-data, sync |
| key-make must be called with file loaded | exception | error | encryption, precondition, state, budget-file |
| No sync server configured. | exception | error | encryption, network, configuration, sync-server |
missing-key missing-key | error_code | critical | encryption, missing-key, state, decryption |
| Invalid filter conditionsOp: ${filter.conditionsOp} | validation | error | validation, filters, schema, conditions |
| There is already a filter named ${item.name} | exception | error | filters, duplicate-name, validation, api |
| Filter name is required | exception | error | filters, validation, missing-field, api |
| Duplicate filter warning: conditions already exist. Filter n | exception | error | filters, duplicate, conditions, validation |
| Conditions are required | exception | error | filters, validation, empty-array, api |
| Tracking budget forecasts require a Tracking Budget file. | exception | error | forecast, budget-type, configuration, precondition |
| Could not find account for transaction when importing | exception | error | import, ynab4, data-integrity, missing-account |
| Could not find file: ${path} | exception | error | import, ynab4, zip, file-not-found |
| File name matches multiple files: ${path} | exception | error | import, ynab4, zip, duplicate-entries |
| Error reading zip file | exception | error | import, ynab4, zip, corrupt-file |
| Error reading Budget.yfull file | exception | error | import, ynab4, zip, file-not-found |
| Error parsing Budget.yfull file | exception | error | import, ynab4, json, corrupt-file |
| Unsupported scheduled frequency: ${frequency} | exception | error | import, ynab5, schedules, unsupported-value |
load-key-error load-key-error | error_code | error | encryption, sync-server, keys |
out-of-sync-migrations out-of-sync-migrations | error_code | critical | database, migrations, version-mismatch |
| ${name} is missing field ${String(field)} | validation | error | validation, database, api |
| Invalid coordinates: latitude must be between -90 and 90, lo | exception | error | validation, coordinates, payees |
| Invalid maxDistance: must be a finite positive number greate | exception | error | validation, parameters, payees |
| getServerErrorReason(json) | http | error | network, http, sync-server |
network-failure network-failure | error_code | critical | network, tunnel, sync-server |
| text (raw server response body) | http | error | network, http, proxy |
aborted aborted | error_code | info | network, abort, cancellation |
parse-json parse-json | error_code | error | network, json, sync-server, http-response |
| responseData.description || responseData.reason || 'unknown' | error_code | error | sync-server, api-response, authentication, server-error |
unknown res.description || res.reason || 'unknown' | error_code | error | sync-server, api-response, server-error, authentication |
| No sync server set | exception | error | configuration, sync-server, environment, preferences |
| No sync server configured. | exception | error | sync, configuration, network |
| Invalid filter conditionsOp: ${report.conditionsOp} | validation | error | validation, custom-reports, typescript |
| Report name is required | exception | error | validation, custom-reports, missing-field |
| There is already a report named ${item.name} | exception | error | custom-reports, duplicate, validation |
| Report recall error | exception | error | validation, missing-identifier, reports |
| Formula must start with = | validation | error | validation, formula, rules |
| Failed to create sheet | exception | error | hyperformula, internal-state, formula |
| Formula error: ${cellValue.message} | exception | error | formula, hyperformula, runtime-error |
| ${msg} | validation | error | rules-engine, validation, invariant |
parse-recur-date parse-recur-date: ${e.message} | error_code | error | schedule, date-parsing, recurring-date |
| Schedule not attached to a rule | exception | error | schedule, null-argument, data-integrity |
| No rule found for schedule | exception | error | schedule, data-integrity, missing-record |
| A date condition is required to create a schedule | validation | error | schedule, validation, missing-condition |
| Date is required | validation | error | schedule, validation, missing-value |
| Cannot create schedules with the same name | validation | error | schedule, duplicate, uniqueness-constraint |
| You cannot change the rule of a schedule | validation | error | schedule, immutable-field, api-misuse |
| Cannot update schedules with the same name | validation | error | schedule, duplicate, uniqueness-constraint |
encrypt-failure encrypt-failure | error_code | critical | sync, encryption, e2ee |
decrypt-failure decrypt-failure | error_code | critical | sync, encryption, e2ee, decryption |
invalid-schema invalid-schema | error_code | critical | sync, sqlite, schema, migration |
clock-drift clock-drift | error_code | critical | sync, clock, time, hlc |
out-of-sync out-of-sync | error_code | critical | sync, merkle, consistency |
| Invalid tag name | validation | error | validation, tags |
| Tag not found | exception | error | tags, not-found |
| A tag with that name already exists | validation | error | tags, validation, uniqueness |
| Transaction not found: ${id} | exception | error | transactions, not-found |
| Account mismatch: transaction belongs to account ${transacti | exception | error | validation, transactions, accounting, state-mismatch |
| File does not appear to be a valid qif file: ${line} | validation | error | import, qif, parsing, file-format |
| Unknown Detail Code: ${line[0]} | validation | error | import, qif, parsing, unsupported-format |
| Merging is only possible with 2 transactions, but found ${JS | validation | error | validation, transactions, merge, argument-count |
| ${validForMergeError} (one of: 'One of the provided transact | validation | error | validation, transactions, merge, business-rules |
| Failed to parse mapping: ${String(message)} | exception | error | parsing, configuration, sync, json |
| Unsafe zip entry name: ${name} | exception | critical | security, zip, path-traversal, validation |
| Zip archive exceeds maximum size of ${maxArchiveSize} bytes | exception | error | zip, security, size-limit, dos |
| Zip entry "${file.name}" exceeds maximum size of ${maxEntryS | exception | error | zip, security, size-limit, decompression-bomb |
| Zip archive's total uncompressed size exceeds maximum of ${m | exception | error | zip, security, size-limit, decompression-bomb |
| Zip archive contains a duplicate entry: ${file.name} | exception | error | zip, import, validation, security |
| Invalid recurring date config | validation | error | schedules, validation, data-corruption |
| Tried to edit unknown transaction id: ${id} | exception | error | transactions, validation, stale-data |
openid-grant-failed openid-grant-failed | error_code | error | openid, authentication, sso, sync-server |
NOT_CONFIGURED Enable Banking is not configured | error_code | error | configuration, enablebanking, missing-secret, sync-server |
TIMED_OUT Request timed out | error_code | error | network, timeout, enablebanking, http |
| Invalid Origin header | http | error | validation, http, gocardless, headers |
| Invalid GoCardless identifier: ${String(id)} | http | error | validation, gocardless, input-sanitization, security |
| Requisition not linked yet | exception | error | gocardless, bank-sync, authorization, requisition |
| Provided account id is not linked to given requisition | exception | error | gocardless, bank-sync, configuration |
| Pluggy credentials are not configured | exception | error | pluggyai, configuration, missing-credentials |
| accountId and startDate must either both be arrays or both b | validation | error | simplefin, validation, api-misuse |
| accountId and startDate arrays must be the same length | validation | error | simplefin, validation, api-misuse |
| Invalid access key | validation | error | simplefin, validation, credentials |
| SimpleFIN claim failed with HTTP ${response.status} | exception | error | simplefin, network, http-error |
| Too many redirects | exception | error | simplefin, network, redirects, http |
| Forbidden | exception | error | simplefin, auth, http-error, credentials |
| UUID format no longer matches expected format | exception | error | sync, uuid, internal-invariant, typescript |
| User ID is required for file creation | exception | error | auth, http, sync-server, missing-user-id |
| File does not exist or you don't have access to it | exception | error | file-not-found, sync-server, http, rest |
| Could not update File | exception | error | database, update-failed, sync-server, race-condition |
| File not found | exception | error | file-not-found, database, sync-server |
| Invalid file ID | exception | error | validation, corrupt-data, sync-server, database |
| Invalid group ID | exception | error | validation, corrupt-data, sync-server, database |
| Invalid token_expiration value: ${val}: value was "${val}" | validation | error | config, startup, validation, env-var |
| Health check failed: Server responded to health check with s | exception | error | health-check, ops, sync-server, availability |
| Failed to delete user access: ${error.message} | exception | error | database, sqlite, sync-server, user-management |
| Invalid user IDs | validation | error | validation, openid, sync-server, user-management |
| New owner not found | exception | error | sync-server, openid, user-not-found, database |
| Failed to transfer files: ${error.message} | exception | error | sync-server, error-wrapping, database, openid |
| Invalid parameters | validation | error | sync-server, validation, arguments, guard-clause |
| File not found | exception | error | sync-server, file-not-found, stale-id, database |
| Failed to update file owner: ${error.message} | exception | error | sync-server, error-wrapping, sqlite, database |
| User or file not found | exception | error | sync-server, user-not-found, file-not-found, referential-integrity |
| Access already exists | exception | warning | sync-server, unique-constraint, duplicate, idempotency |
| Failed to add user access: ${error.message} | exception | error | sync-server, error-wrapping, sqlite, database |
| The provided userIds must be a non-empty array. | validation | error | sync-server, validation, arguments, array |
| Invalid URL | validation | error | ssrf, url, validation, sync-server |
| Blocked request to disallowed protocol: ${url.protocol} | exception | warning | ssrf, security, url, sync-server |
| Blocked request to private/local IP: ${hostname} | exception | warning | ssrf, security, network, sync-server |
| Unable to resolve host: ${hostname} | exception | error | dns, network, ssrf, sync-server |
| Blocked request to host resolving to private/local IP: ${hos | exception | warning | ssrf, security, dns, sync-server |
| useAuth must be used within an AuthProvider | exception | error | react, context, auth, hooks |
| Unrecognized menu option: ${String(item)} | exception | error | react, ui, menu, developer-error |
| Unknown modal | exception | error | react, ui, modal, developer-error |
| ServerContext not initialized | exception | error | react, context, provider-missing, desktop-client |
| Account with ID ${this.props.accountId} not found. | exception | error | react, race-condition, stale-data, accounts |
| Account with ID ${accountId} not found. | exception | error | react, race-condition, stale-data, reconciliation |
| Unknown item type: | exception | error | typescript, exhaustiveness, discriminated-union, budget |
| Unrecognized menu option: ${name} | exception | error | typescript, exhaustiveness, menu, budget |
| Unrecognized menu item: ${name} | exception | error | typescript, exhaustiveness, menu, budget |
| Unitialised context method called: onBudgetAction | exception | error | react, context, provider-missing, budget |
| Unitialised context method called: onToggleSummaryCollapse | exception | error | react, context, provider-missing, budget |
| Unrecognized menu option: ${String(name)} | exception | error | typescript, exhaustiveness, menu, budget |
| Unrecognized menu option: ${name} | exception | error | switch-default, unhandled-menu-item, react, budget-ui |
| Expected availableValue to be a number but got | exception | error | type-mismatch, undefined-value, budget-sheet, react |
| Expected availableValue to be a number but got | exception | error | type-mismatch, undefined-value, budget-sheet, react |
| Unrecognized menu option: ${name} | exception | error | switch-default, unhandled-menu-item, react, budget-ui |
| Unrecognized menu option: ${String(name)} | exception | error | switch-default, unhandled-menu-item, react, budget-ui |
| Unrecognized menu item: ${name} | exception | error | react, menu, unhandled-switch-case, ui-crash |
| Unitialised context method called: onBudgetAction | exception | error | react, react-context, missing-provider, budget |
| Unitialised context method called: onToggleSummaryCollapse | exception | error | react, react-context, missing-provider, budget |
| Unrecognized menu option: ${name} | exception | error | react, menu, unhandled-switch-case, ui-crash |
| Unrecognised Link variant. | exception | error | react, typescript, discriminated-union, invalid-props |
| Internal error: account with ID ${targetAccountId} not found | exception | error | ui, drag-and-drop, state-desync, internal-error |
| Unrecognized menu option: ${name} | exception | error | ui, menu, exhaustiveness, internal-error |
| Internal error: category with ID ${categoryIdToMove} not fou | exception | error | ui, drag-and-drop, state-desync, internal-error |
| Internal error: category ${categoryIdToMove} is not in a gro | exception | error | ui, drag-and-drop, data-integrity, internal-error |
| Internal error: category with ID ${targetCategoryId} not fou | exception | error | ui, drag-and-drop, state-desync, internal-error |
| Internal error: category group with ID ${draggedGroupId} not | exception | error | ui, drag-and-drop, render, internal-error |
| Internal error: category group with ID ${groupIdToMove} not | exception | error | ui, drag-and-drop, state-desync, internal-error |
| Internal error: category group with ID ${targetGroupId} not | exception | error | ui, drag-and-drop, state-desync, internal-error |
| Internal error: category with ID ${categoryIdToMove} not fou | exception | error | ui, drag-and-drop, state-desync, internal-error |
| Internal error: category ${categoryIdToMove} is not in a gro | exception | error | ui, drag-and-drop, data-integrity, internal-error |
| Internal error: category with ID ${targetCategoryId} not fou | exception | error | react, drag-and-drop, state-desync, invariant |
| Cannot delete rule: invalid id | exception | error | react, routing, guard-clause, mobile |
| Transaction ${transactionId} not found | exception | error | react, transactions, state-desync, mobile |
| Unrecognized menu option: ${String(name)} | exception | error | react, menu, switch-statement, developer-error |
| Unrecognized menu item: ${name} | exception | error | react, menu, switch-statement, developer-error |
| Unhandled edit field name: ${String(name)} | exception | error | react, modal, switch-statement, developer-error |
| Unrecognized menu option: ${String(name)} | exception | error | react, menu, switch-statement, developer-error |
| Unrecognized menu option: ${name} | exception | error | react, menu, schedules, switch-statement |
| Unrecognized sync source: ${String(syncSource)} | exception | error | react, bank-sync, validation, switch-statement |
| Error: failed loading lazy-loaded module ${name} | exception | error | lazy-loading, network, code-splitting, stale-build |
INVALID_ACCESS_TOKEN INVALID_ACCESS_TOKEN | error_code | error | bank-sync, simplefin, auth |
ITEM_LOGIN_REQUIRED ITEM_ERROR | error_code | error | bank-sync, gocardless, reauth |
ACCOUNT_NEEDS_ATTENTION ACCOUNT_NEEDS_ATTENTION | error_code | error | bank-sync, account-status |
RATE_LIMIT_EXCEEDED RATE_LIMIT_EXCEEDED | error_code | warning | bank-sync, rate-limit, retry |
TIMED_OUT TIMED_OUT | error_code | warning | bank-sync, timeout |
ACCOUNT_MISSING ACCOUNT_MISSING | error_code | error | bank-sync, account-missing |
SYNC_ERROR SYNC_ERROR | error_code | error | bank-sync, fallback, unclassified |
| boot?.error | http | error | sync-server, bootstrap, http-400 |
| Invalid redirect URL | http | error | sync-server, openid, open-redirect, validation |
| error | http | error | sync-server, openid, http-400, config |
forbidden permission-not-found | http | warning | authorization, http-403, forbidden, admin-only |
invalid-prefs invalid-prefs | http | error | http-400, validation, schema, server-prefs |
| User not found | http | error | authentication, session, stale-token, http-400 |
| Failed to retrieve owner count | http | critical | http-500, database, sqlite, sync-server |
forbidden permission-not-found | http | warning | authorization, http-403, forbidden, admin-only |
user-cant-be-empty Username cannot be empty | validation | error | http-400, validation, required-field, user-management |
role-does-not-exists Selected role does not exist | validation | error | http-400, validation, sync-server, admin-api |
user-already-exists User ${userName} already exists | http | error | http-400, duplicate, sync-server, admin-api |
cannot-find-user-to-update Cannot find user ${userName} to update | http | error | http-400, not-found, sync-server, admin-api |
not-all-deleted not-all-deleted | http | warning | http-400, partial-failure, batch, sync-server |
invalid-file-id File not found at server | http | error | http-404, not-found, files, sync-server |
file-denied You don't have permissions over this file | http | error | permissions, authorization, sync-server, http-400 |
user-already-have-access User already have access | http | warning | duplicate, http-400, sync-server, idempotency |
new-user-not-found New user not found | http | error | sync-server, rest-api, not-found, admin |
| Missing url parameter | http | warning | cors-proxy, rest-api, validation |
| Invalid url parameter | http | warning | cors-proxy, validation, url-parsing |
| URL not allowed: Unable to verify allowlist | http | error | cors-proxy, network, allowlist, fail-closed |
| URL not allowed: Only allowlisted plugin repositories are al | http | warning | cors-proxy, security, allowlist, policy |
| Invalid method parameter | http | warning | cors-proxy, validation, rest-api |
| Method not allowed | http | warning | cors-proxy, http-method, policy |
| Authorization failed: missing code. | http | error | oauth, http-400, enablebanking, missing-parameter |
| Authorization failed: missing state parameter. | http | error | oauth, http-400, enablebanking, csrf, missing-parameter |
| Authorization failed. You can close this window and try agai | http | error | oauth, http-500, enablebanking, token-exchange, callback |
forbidden forbidden: permission-not-found | http | error | authorization, http-403, openid, admin-only, permissions |
| ${error} | http | error | openid, http-500, configuration, discovery |
already-bootstraped already-bootstraped | http | error | openid, http-400, bootstrap, configuration, state-conflict |
invalid-password invalid-password | http | error | authentication, http-400, openid, password, bootstrap |
| OpenID configuration not found | http | error | openid, http-500, configuration, database, missing-data |
| Invalid OpenID configuration | http | error | openid, http-500, config, json-parse |
Invalid redirect URL Invalid redirect URL | http | error | openid, redirect, http-400, open-redirect |
invalid-file-id invalid fileId | http | error | http-400, validation, pluggyai, headers |
file-access-denied You don't have permissions over this file | http | error | http-403, authorization, pluggyai, permissions |
not-configured Pluggy credentials are not configured | http | error | pluggyai, http-400, missing-credentials, configuration |
invalid-secret-name Unknown secret name | http | error | http-400, validation, secrets, api |
invalid-file-id invalid fileId | http | error | http-400, validation, headers, secrets |
file-access-denied You don't have permissions over this file | http | error | http-403, authorization, multiuser, secrets |
not-admin You have to be admin to manage global secrets | http | error | http-403, authorization, admin, secrets |
| key not found | http | warning | http-404, validation, secrets, delete |
| Duplicate headers encountered for key ${key} | http | error | http-headers, http-400, sync, proxy |
| invalid fileId | http | error | validation, http-400, sync, file-id |
file-not-found file-not-found | http | error | http-400, file-not-found, sync, state-mismatch |
internal-error internal-error | http | critical | protobuf, http-500, sync, request-format |
since-required since-required | validation | error | validation, http-422, sync, missing-field |
| fileAccessError (requireFileAccess denial) | http | error | auth, permissions, http-403, sync |
| validateSyncedFile error message (dynamic) | http | error | |
| fileAccessError (requireFileOwner denial) | http | error | |
| single x-actual-name is required | http | error | |
| fileId is required | http | error | |
| invalid groupId | http | error | |
| validateUploadedFile error message (dynamic) | http | error | |
error error | http | error | filesystem, server, io, upload |
| Single file ID is required | http | warning | http, validation, headers, client-error |
| Access denied | http | error | security, path-traversal, configuration, http |
fileId-required fileId-required | validation | warning | http, validation, request-body, client-error |
internal-error internal-error | http | critical | server, internal, unhandled-exception, http |
token-not-found token-not-found | http | error | auth, sync-server, http-401, session-token |
token-expired token-expired | http | error | auth, sync-server, http-401, token-expiry |
| No token received. | http | warning | oauth, electron, http-400, authentication |
| balance is non-zero: transferAccountId is required | exception | error | api, accounts, validation, loot-core |
| transfer account can not be the account being closed | exception | error | api, accounts, validation, loot-core |
| transactions-import: accountId must be an id | exception | error | validation, api, typescript, account-id |
| transactions-import: payeeNameNormalization must be one of $ | exception | error | validation, api, enum, payee |
res.error_code BankSyncError(res.error_type, res.error_code, errorDetails) | error_code | error | bank-sync, gocardless, network, upstream, rate-limit |
TIMED_OUT TIMED_OUT | error_code | error | bank-sync, simplefin, timeout, network |
NO_DATA NO_DATA | error_code | error | bank-sync, simplefin, empty-response, data |
Connection Connection | error_code | error | bank-sync, pluggy, connection, configuration |
| Invalid month format, use YYYY-MM: ${month} | exception | error | validation, api, input-format |
| No budget exists for month: ${month} | exception | error | validation, api, budget-bounds |
| ${debug}: category id is required | validation | error | validation, api, missing-argument, category |
| ${debug}: category "${id}" does not exist | validation | error | validation, api, category, not-found |
| ${debug}: category "${id}" is not an expense category | validation | error | validation, api, category, type-mismatch |
| No budget file is open | exception | error | api, budget-not-loaded, state |
| Cannot start a batch process: batch already started | exception | error | api, batching, concurrency |
| Cannot end a batch process: no batch started | exception | error | api, batching, state |
| Amount to hold needs to be greater than 0 | validation | error | api, validation, budget |
| Account group name is required | validation | error | api, validation, required-field |
| Failed creating a new rule | exception | error | api, rules, validation |
| Failed updating the rule | exception | error | api, rules, validation |
| Schedule ${id} not found | exception | error | api, schedules, not-found |
| There is already a schedule named: ${newName} | validation | error | api, schedules, uniqueness, validation |
| Field ${typedKey} is system-managed and not user-editable. | validation | error | api, schedules, read-only-field, validation |
| Invalid amount operator: ${String(value)}. Expected: is, isa | validation | error | validation, api, schedules |
| Ammount can not be found. There is a bug here | exception | error | schedules, internal-state, api |
| Date can not be found. Schedules can not be created without | exception | error | schedules, internal-state, data-corruption |
| Unhandled field: ${typedKey} | exception | error | api, validation, typo |
| Provide a valid type | validation | error | api, validation, invalid-argument |
| Not found: ${type} with name ${name} | exception | error | api, not-found, lookup |
| Creating a category: groupId is required | validation | error | api, validation, missing-parameter, categories |
zip-too-large zip-too-large | error_code | error | file-import, zip, size-limit, security |
not-zip-file not-zip-file | error_code | error | file-import, zip, format, validation |
invalid-zip-file invalid-zip-file | error_code | error | zip, file-import, data-integrity, cloud-sync |
invalid-meta-file invalid-meta-file | error_code | error | json, file-import, data-integrity, cloud-sync |
unauthorized unauthorized | error_code | error | auth, unauthorized, cloud-sync, missing-token |
encrypt-failure encrypt-failure | error_code | error | encryption, missing-key, cloud-sync, security |
internal internal | error_code | error | network, cloud-sync, unclassified-error |
download-failure download-failure | error_code | error | network, http, download, cloud-sync |
decrypt-failure decrypt-failure | error_code | error | encryption, sync, budget-download |
| Persistent storage request failed: | console | warning | browser, storage, persistence |
| Geolocation error: | console | warning | geolocation, browser-api, permissions |
| getSyncError(error, id) | error_code | error | sync, budget-load, api |
network-failure Could not get remote files | error_code | error | network, sync-server, api |
budget-not-found Budget "${syncId}" not found. Check the sync id of your budget in the Advanced s | error_code | error | sync, budget-not-found, api |
missing-key File ${activeFile.name} is encrypted. Please provide a password. | error_code | error | encryption, password, api |
| getTestKeyError(result.error) | error_code | error | encryption, password, key-test |
| getSyncError(result.error.reason, localBudget.id, result.err | error_code | error | sync, clock-drift, schema |
| getDownloadError(result.error) | error_code | error | download, sync-server, zip |
| getSyncError(result.error.reason, id, result.error.meta) | error_code | error | |
| getBankSyncError(errors[0]) | error_code | error | |
| getCompileError(e, state.compileStack) | exception | error | |
| Unable to create category group: ${errorMsg} | exception | error | |
| Unable to create category: ${errorMsg} | exception | error | |
| throw Error(errorMsg) | exception | error | import, ynab5, schedules, validation |
token-expired Authentication failed: invalid or expired session token | error_code | error | authentication, session, sync-server, token |
network-failure Authentication failed: server offline or unreachable | error_code | error | network, sync-server, connectivity, authentication |
| Authentication failed: ${result.error} | error_code | error | authentication, password, sync-server |
| handleEnableBankingError(response.status, responseBody) | http | error | http, enablebanking, api, third-party |