ErrLookup › HKUDS/Vibe-Trading
HKUDS/Vibe-Trading
"Vibe-Trading: Your Personal Trading Agent" · Python · 1,156 source files
Analyzed at 80ffdda44c on 2026-08-28. 754 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| unknown zoo {v!r}; expected one of {sorted(_VALID_ZOOS)} | validation | error | plugin-system, import, local-connector, trading |
| unknown universe {v!r}; expected one of {sorted(_BENCH_UNIVE | validation | error | plugin-system, contract, local-connector, trading |
| invalid alpha_id {aid!r} | validation | error | scaffold, not-implemented, local-connector, trading |
| need at least 2 distinct alpha_ids to compare | validation | error | scaffold, not-implemented, local-connector, trading |
| unknown sort {v!r}; expected one of {sorted(_VALID_SORTS)} | validation | error | scaffold, filesystem, already-exists, trading |
| unknown zoo {zoo!r}; expected one of {sorted(_VALID_ZOOS)} | http | error | install, filesystem, already-exists, plugin-system |
| unknown theme {theme!r}; expected one of {sorted(_VALID_THEM | http | error | profiles, configuration, unknown-id, trading |
| unknown universe {universe!r}; expected one of {sorted(_VALI | http | error | sdk, connector, unsupported-broker, trading |
| {exc} | http | error | local-connector, connection, missing-argument, trading |
| invalid alpha_id | http | error | python, validation, limit-exceeded, batching |
| alpha_id not found | http | error | python, validation, date-format, iso-8601 |
| invalid period: {exc} | http | error | python, validation, type-coercion |
| too many running benches; wait for one to finish | http | error | python, validation, limit-out-of-range |
| invalid job_id | http | error | python, validation, enum-value |
| job {job_id} not found | http | error | python, validation, enum-value, dispatcher |
| too many running comparisons; wait for one to finish | http | error | python, missing-file, file-path |
| no MCP server configured for live broker {broker!r} | exception | critical | live-trading, mcp, configuration, broker, unavailable |
| live runner for {broker!r} does not define remote tool {oper | exception | error | live-trading, broker, runner, tool-mapping, fastapi |
| live runner is not supported for {broker} | http | error | live-trading, broker, validation, http-400 |
| no committed mandate for {broker} | http | error | live-trading, authorization, mandate, http-409 |
| mandate for {broker} has expired; re-authorize first | http | error | live-trading, mandate, expiry, http-409 |
| Invalid or missing API key | http | critical | api-key, auth, shutdown, http-401, security |
| API_AUTH_KEY is required for non-local API access | http | error | auth, shutdown, http-403, local-only, security |
| Settings access requires API_AUTH_KEY or a local loopback cl | http | warning | settings, auth, http-403, loopback |
| Settings writes require API_AUTH_KEY or a local loopback cli | http | error | settings, auth, http-403, loopback, write-protection |
| Session runtime not enabled | http | error | sessions, http-501, not-implemented, feature-flag, goals |
| Session {session_id} not found | http | error | sessions, http-404, not-found, goals |
| invalid risk_tier: {req.risk_tier} | http | error | validation, enum, http-400, goals, risk-tier |
| live trading or execution goals are not supported | http | error | validation, http-400, goals, risk-tier, policy |
| str(exc) | http | error | validation, http-400, goals, budgets, value-error |
| Goal created but could not be reloaded | http | error | goals, http-500, internal, store-consistency |
| No current goal | http | warning | goals, http-404, not-found, session-state |
| Session runtime not enabled | http | error | http-501, session-runtime, feature-disabled, channels |
| {str(e)} | http | error | http-404, swarm, preset-not-found, file-not-found |
| exit_threshold must be below enter_threshold | http | error | validation, thresholds, hysteresis, api |
| invalid shadow_id | validation | error | validation, path-traversal, uploads, api |
| format must be html or pdf | validation | error | validation, uploads, api |
| Missing filename | validation | error | validation, upload, multipart, api |
| This file type is not allowed for upload. | validation | error | security, upload, file-type, blocklist, api |
| Feishu QR login requires a JSON agent config; use ~/.vibe-tr | validation | error | config, feishu, file-format, json |
| agent config 'channels' must be an object | validation | error | config, feishu, schema, json |
| agent config 'channels.feishu' must be an object | validation | error | config, feishu, schema, json |
| Feishu / Lark registration does not support client_secret au | exception | error | feishu, auth, registration, oauth |
| Feishu / Lark registration did not return a device_code | exception | error | feishu, auth, registration, device-code |
| Feishu / Lark registration did not return a login URL | exception | error | feishu, lark, oauth, device-code, qr-login, registration |
| Feishu message content must not be empty | validation | warning | feishu, validation, empty-message, send |
| group_message_buffer_size must be > 0 | validation | error | config, pydantic, signal, validation |
| signal-cli daemon check returned status {response.status_cod | error_code | critical | signal, network, startup |
| signal-cli daemon not responding: {e} | error_code | critical | signal, network, connection, startup |
| Signal SSE stream ended unexpectedly | error_code | error | signal, sse, network, streaming |
| signal-cli send failed: {response['error']} | error_code | error | signal, send, rpc |
| HTTP client not initialized for Signal SSE stream | error_code | error | signal, internal, lifecycle |
| SSE connection failed with status {response.status_code} | error_code | error | signal, sse, http, startup |
| Signal SSE stream closed by remote endpoint | error_code | warning | signal, sse, reconnect |
| Not connected to signal-cli daemon | error_code | error | signal, lifecycle, rpc |
| Slack Socket Mode WebSocket connect timed out | error_code | critical | slack, websocket, network, timeout, proxy |
| Slack target channel name is empty | validation | warning | slack, target, validation |
| Slack target user handle is empty | validation | warning | slack, target, validation |
| webhook_secret_token is required when Telegram mode is webho | validation | critical | telegram, webhook, config-validation, security |
| webhook_secret_token must be 1-256 characters using only A-Z | validation | error | telegram, webhook, validation, secret-format |
| unsafe media URL: {error} | validation | error | telegram, ssrf, media, url-validation, security |
| unix_socket_path must not contain NUL bytes | validation | error | websocket, unix-socket, config-validation, nul-byte |
| unix_socket_path must be an absolute path | validation | error | websocket, unix-socket, absolute-path, config-validation |
| path must start with "/" | validation | error | websocket, path-validation, config-validation |
| token_issue_path must start with "/" | validation | error | websocket, token, path-validation, config-validation |
| token_issue_path must differ from path (the WebSocket upgrad | validation | error | websocket, route-conflict, config-validation |
| host is 0.0.0.0 (all interfaces) but neither token nor token | validation | critical | websocket, security, authentication, config-validation |
| ssl_certfile and ssl_keyfile must both be set for WSS, or bo | validation | critical | websocket, tls, ssl, certificates, config-validation |
| File too large: {file_size} bytes (max {WECOM_UPLOAD_MAX_BYT | validation | error | wecom, file-upload, size-limit, validation |
| Failed to get QR code from WeChat API: {data} | error_code | critical | wechat, qr-login, authentication, api-error |
| WeChat session paused, {remaining_min} min remaining (errcod | error_code | error | wechat, session-expired, cooldown, rate-limit |
| getUpdates failed: ret={ret} errcode={errcode} errmsg={data. | error_code | error | wechat, long-polling, getupdates, api-error |
| WeChat client not initialized or not authenticated | error_code | error | wechat, initialization, authentication, precondition |
| WeChat context_token missing for chat_id={msg.chat_id}, cann | error_code | error | wechat, context-token, chat-state, precondition |
| WeChat send text error (ret={ret}, errcode={errcode}): {data | exception | error | wechat, send-message, api-error, rate-limit |
| Media file not found: {media_path} | exception | error | wechat, media-upload, file-not-found, filesystem |
| getuploadurl returned no upload URL (need upload_full_url or | exception | error | wechat, media-upload, cdn, api-error |
| CDN upload response missing x-encrypted-param header; status | exception | error | wechat, cdn-upload, missing-header, media |
| WeChat send media error (ret={ret}, errcode={errcode}): {dat | exception | error | wechat, messaging, api-error, media-upload |
| WhatsApp dependencies not installed. Run: pip install "vibe- | exception | error | whatsapp, dependencies, import-error, optional-extra |
| WhatsApp channel is not connected | exception | error | whatsapp, channel-state, not-connected, messaging |
| workspace root must stay under {default_root} | exception | warning | workspace, path-security, validation, gateway |
| SWARM_WORKER_RETRY_MAX_DELAY_S must be greater than or equal | validation | error | config, env-var, retry, validation, swarm |
| YAML config is not available because PyYAML is missing | exception | error | config, yaml, dependencies, optional-dependency |
| Unsupported config file format: {suffix or '<none>'} | exception | error | config, file-format, validation |
| Agent config must decode to a JSON/YAML object | exception | error | config, json, yaml, schema-validation |
| VIBE_TRADING_HOME must not be a UNC path: {env_root!r} | exception | error | config, windows, unc-path, env-var, filesystem |
| HTTP MCP servers require an explicit type of 'sse' or 'strea | validation | error | mcp, config, transport, validation |
| stdio MCP servers require a command | validation | error | mcp, config, stdio, validation |
| stdio MCP servers do not accept url/headers | validation | error | mcp, config, stdio, validation |
| stdio MCP servers do not accept auth (OAuth is HTTP-only) | validation | error | mcp, config, oauth, stdio, validation |
| {transport} MCP servers require a url | validation | error | mcp, config, http-transport, validation |
| {transport} MCP servers do not accept command/args/env | validation | error | mcp, config, http-transport, validation |
| MCP servers using auth must not also set static headers (the | validation | error | mcp, config, oauth, headers, validation |
| OAuth MCP servers require an https url | validation | error | mcp, oauth, https, security, config |
| Live-broker MCP server '{server_key}' may not use a wildcard | validation | error | mcp, live-broker, security, allowlist, config |
| kind must be a string, got {type(value).__name__} | validation | error | cashflow, type-validation, entities |
| kind is required and cannot be empty | validation | error | cashflow, validation, entities, empty-value |
| amount must be numeric, got {self.amount!r} | validation | error | python, cashflow, type-validation, dataclass |
| amount must be a finite number, got {self.amount!r}; a missi | validation | error | python, cashflow, nan, validation |
| kind={self.kind!r} must have a {direction} amount under the | validation | error | python, cashflow, sign-convention, validation |
| metadata must be a mapping, got {type(self.metadata).__name_ | validation | error | python, cashflow, metadata, type-validation |
| CashFlowSeries members must be CashFlow, got {type(item).__n | validation | error | python, cashflow, type-validation |
| pre_translated=True asserts the flows were already converted | validation | error | python, cashflow, currency, validation |
| cash flows span multiple currencies ({', '.join(sorted(prese | validation | error | python, cashflow, currency-mismatch |
| declared currency {declared!r} does not match the flows' cur | validation | error | python, cashflow, currency-mismatch |
| start {lower} is after end {upper} | validation | error | python, cashflow, date-range, validation |
| rate must be numeric, got {self.rate!r} | validation | error | python, fx-rate, type-validation |
| rate must be finite and strictly positive -- it is quote-per | validation | error | python, fx-rate, validation |
| FxRateTable entries must be FxRate, got {type(entry).__name_ | validation | error | python, fx-rate, type-validation |
| FxRate {entry.base_currency}/{entry.quote_currency}@{entry.d | validation | error | python, fx-rate, currency-mismatch |
| FxRate stored under key {key!r} does not match its own (base | validation | error | python, fx-rate, dict-key-validation |
| rates must contain FxRate, got {type(entry).__name__} | validation | error | python, fx-rate, type-validation |
| conflicting rates for {key}: {indexed[key].rate!r} vs {entry | validation | error | python, fx-rate, duplicate-data |
| no {base}/{self.quote_currency} rate for {day}; pass allow_s | exception | error | python, fx-rate, missing-data |
| no {base}/{self.quote_currency} rate on or before {day}{boun | exception | error | python, fx-rate, missing-data, staleness |
| flows must contain CashFlow, got {type(flow).__name__} | validation | error | python, cashflow, fx-rate, type-validation |
| {path}: unknown column mapping {field_name!r}; mappable fiel | exception | error | python, csv, ingest, column-mapping |
| {path}: mapped column {source_name!r} for field {field_name! | exception | error | csv, ingest, column-mapping, cashflow |
| {text!r} uses a single comma and could be either {text.repla | validation | error | csv, number-parsing, locale, ambiguity |
| {path} row {row_number}: amount is blank. A missing amount m | exception | error | csv, ingest, blank-value, cashflow |
| {path} row {row_number}: amount {raw!r} is not usable: {exc} | exception | error | csv, number-parsing, value-error, cashflow |
| {path} row {row_number}: date is blank | exception | error | csv, date-parsing, blank-value |
| {path} row {row_number}: date {raw!r} does not match date_fo | exception | error | csv, date-parsing, strptime, format-mismatch |
| {path} row {row_number}: unit is blank and no unit=... fallb | exception | error | csv, ingest, unit, validation |
| {path}: layout={layout!r} needs metric=... -- a wide table h | exception | error | ingest, panel, wide-layout, metric |
| {path}: layout={layout!r} needs currency=... -- a wide table | exception | error | ingest, panel, wide-layout, currency |
| {path}: layout={layout!r} needs unit=... -- a wide table has | exception | error | ingest, panel, wide-layout, unit |
| {path}: layout={layout!r} needs at least one column besides | exception | error | ingest, csv, wide-layout, delimiter |
| {path}: column header {column_name!r} is not a usable date ( | exception | error | ingest, date-parsing, wide-layout |
| {path} row {row_number}: {row_label_column!r} is blank | exception | error | ingest, csv, wide-layout, blank-cell |
| layout must be one of {_PANEL_LAYOUTS}, got {layout!r} | exception | error | validation, argument, layout |
| {field_name} must be a string, got {type(value).__name__} | validation | error | validation, type-error, currency, models |
| {field_name} is required and cannot be empty | validation | error | validation, currency, empty-value, models |
| {field_name} cannot contain whitespace, got {value!r} | validation | error | validation, currency, whitespace, models |
| {field_name}={value!r} is not ISO-8601 (YYYY-MM-DD); pass an | validation | error | date, parsing, iso8601, models |
| {field_name} must be a date, datetime, or ISO-8601 string, g | validation | error | validation, date, type-error, models |
| entity_id is required and cannot be empty | validation | error | validation, entity, empty-value, models |
| unknown entity_type {self.entity_type!r}; expected one of: { | validation | error | python, dataclass, enum-validation, entities |
| entity {self.entity_id!r} cannot be its own parent | validation | error | python, dataclass, tree-structure, entities |
| instrument_id is required and cannot be empty | validation | error | python, dataclass, required-field, instruments |
| unknown security_type {self.security_type!r}; expected one o | validation | error | python, dataclass, enum-validation, securities |
| unknown structure {self.structure!r}; expected one of: {vali | validation | error | python, dataclass, enum-validation, funds |
| vintage_year={self.vintage_year!r} is outside the plausible | validation | error | python, dataclass, range-check, funds, year-validation |
| commitment must be non-negative (it is a size, not a signed | validation | error | python, dataclass, sign-validation, funds |
| management_fee_rate must be a decimal fraction in [0, 1] (0. | validation | error | python, dataclass, unit-conversion, funds, rate-validation |
| face_value must be positive, got {self.face_value!r} | validation | error | python, dataclass, bond, positive-value-validation |
| coupon_rate cannot be negative, got {rate!r} | validation | error | python, dataclass, bond, rate-validation |
| coupon_rate must be a decimal fraction (0.05 means 5%), got | validation | error | python, dataclass, bond, unit-conversion, rate-validation |
| coupon_frequency cannot be negative, got {self.coupon_freque | validation | error | python, dataclass, bond, count-validation |
| coupon_frequency=0 marks a zero-coupon bond, but coupon_rate | validation | error | python, dataclass, bond, cross-field-validation |
| maturity_date {self.maturity_date} precedes inception_date { | validation | error | python, dataclass, bond, date-validation |
| module {__name__!r} has no attribute {name!r} | exception | warning | python, module-attribute, lazy-import, bottleneck |
| ts_rank window must be >= 1, got {n} | validation | error | python, factors, rolling-window, parameter-validation |
| ts_corr window must be >= 2, got {n} | validation | error | python, factors, rolling-window, correlation, parameter-validation |
| ts_cov window must be >= 2, got {n} | validation | error | python, factors, rolling-window, covariance, parameter-validation |
| ts_mean window must be >= 1, got {n} | validation | error | python, factors, rolling-window, parameter-validation |
| ts_std window must be >= 2, got {n} | validation | error | python, factors, rolling-window, standard-deviation, parameter-validation |
| ts_max window must be >= 1, got {n} | validation | error | rolling-window, validation, pandas |
| ts_min window must be >= 1, got {n} | validation | error | rolling-window, validation, pandas |
| ts_argmax window must be >= 1, got {n} | validation | error | rolling-window, argmax, bottleneck |
| ts_argmin window must be >= 1, got {n} | validation | error | rolling-window, argmin, bottleneck |
| delta lag must be >= 1 (lookahead ban), got {d} | validation | error | lookahead-ban, lag, validation |
| decay_linear window must be >= 1, got {n} | validation | error | decay, rolling-window, validation |
| vwap(equity_cn) requires panel['amount'] and panel['volume'] | validation | error | vwap, missing-column, equity-cn, data-pipeline |
| vwap({market.value}) requires panel keys {required}; missing | validation | error | vwap, missing-column, ohlc |
| run_bench_strict requires random_control to be passed explic | validation | error | strict-api, benchmark, keyword-only, explicit-parameter |
| n_groups must be >= 1, got {n_groups} | validation | error | quantile, validation, factor-analysis |
| unknown panel column: {column} | validation | error | registry, column-validation, factor-spec |
| invalid {kind} {token!r}: must match {_ID_RE.pattern} | validation | error | registry, identifier-validation, factor-spec |
| {path.name}: {size}B exceeds {_MAX_PY_BYTES}B cap | exception | error | registry, file-size-cap, static-analysis |
| {path.name}: __alpha_meta__ assignment not found | exception | error | registry, missing-metadata, ast-parsing |
| {path.name}: __alpha_meta__ not a literal: {exc} | exception | error | registry, ast-parsing, literal-eval |
| {path.name}: __alpha_meta__ must be dict, got {type(raw).__n | exception | error | registry, type-validation, metadata |
| {path.name}: AlphaMeta validation failed: {exc} | validation | error | registry, pydantic, schema-validation |
| {path.name}: {size}B exceeds {_MAX_YAML_BYTES}B YAML cap | exception | error | registry, yaml, file-size-cap |
| alpha_id {alpha_id!r} not in registry | exception | error | registry, key-error, lookup |
| {alpha_id}: no source path recorded | exception | error | registry, source-code, metadata-missing |
| {alpha_id}: cannot stat source: {exc} | exception | error | filesystem, registry, io-error |
| {alpha_id}: source {size}B exceeds {_MAX_PY_BYTES}B cap | exception | warning | size-limit, source-code, registry |
| {alpha_id}: cannot read source: {exc} | exception | error | filesystem, race-condition, io-error |
| {alpha_id}: panel missing required columns {missing} | validation | warning | data-validation, panel, registry |
| {alpha_id}: panel missing extras {missing_extra} | validation | warning | data-validation, panel, registry |
| {alpha_id}: panel missing sector tag | validation | warning | data-validation, sector, panel |
| {alpha_id}: import failed: {exc} | exception | error | import, dependency, registry |
| {alpha_id}: module has no compute() function | exception | error | contract, registry, module-structure |
| {alpha_id}: compute() raised: {exc} | exception | error | computation, pandas, registry |
| {alpha.id}: could not build import spec for {py_file} | error_code | error | import, importlib, registry |
| {alpha_id}: compute() returned {type(result).__name__}, expe | validation | error | type-validation, pandas, contract |
| {alpha_id}: output shape {result.shape} != close shape {ref. | validation | error | shape-validation, pandas, contract |
| {alpha_id}: output contains +/- inf | validation | error | numerical, pandas, infinity |
| {alpha_id}: output >95% NaN (nan_ratio={nan_ratio:.3f}) | validation | error | numerical, nan, validation |
| delay requires n >= 1 (lookahead ban) | validation | critical | lookahead-bias, validation, alpha101 |
| delay requires n >= 1 (lookahead ban) | validation | critical | lookahead-bias, validation, alpha101 |
| delay requires n >= 1 (lookahead ban) | validation | critical | lookahead-bias, validation, alpha101 |
| delay requires n >= 1 (lookahead ban) | validation | critical | lookahead-bias, validation, alpha101 |
| delay requires n >= 1 (lookahead ban) | validation | critical | lookahead-bias, validation, alpha101 |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| delay requires n >= 1 (lookahead ban) | validation | error | pandas, alpha101, lookahead-bias, input-validation |
| {field_name} cannot be empty | validation | error | validation, goal-store, empty-string, python |
| live trading or execution goals are not supported | validation | error | policy, goal-store, live-trading, input-validation |
| live trading or execution goals are not supported | validation | error | policy, goal-store, risk-tier, live-trading |
| at least one goal criterion is required | validation | error | validation, goal-store, empty-list, python |
| {name} must be positive | validation | error | validation, goal-store, budget, positive-integer |
| evidence limit must be positive | validation | error | validation, goal-store, pagination, positive-integer |
| evidence text cannot be empty | validation | error | validation, goal-store, evidence, empty-string |
| usage deltas must be non-negative | validation | error | validation, goal-store, usage-accounting, non-negative |
| expected_goal_id does not match target goal | validation | error | goal-store, optimistic-concurrency, stale-state, python |
| goal is not available for this session | validation | error | goal-store, wrong-session, entity-not-found, python |
| goal status {goal.status.value!r} is not mutable | validation | error | goal-store, immutable-state, status-transition, python |
| goal is not current for this session | validation | error | goal-store, current-goal, stale-state, python |
| unknown criterion_id: {criterion_id} | validation | error | goal-store, criterion, foreign-key, python |
| unknown claim_id: {claim_id} | validation | error | goal-store, claim, foreign-key, python |
| missing audit row for criterion {criterion.criterion_id} | validation | error | goal-store, completion-audit, validation, python |
| criterion {criterion.criterion_id} is not satisfied | validation | error | goal-store, completion-audit, invalid-result, python |
| complete goals require verified evidence | validation | error | goal-store, completion-audit, missing-evidence, python |
| not-applicable criteria require acceptance notes | validation | error | goal-store, completion-audit, acceptance-notes, python |
| unknown evidence_id: {evidence_id} | validation | error | goal-store, completion-audit, evidence-id, python |
| evidence {evidence_id} does not match criterion {criterion.c | validation | error | goal-store, completion-audit, evidence-criterion-mismatch, python |
| payload must not set reserved chain fields: {sorted(reserved | validation | error | ledger, append-only-log, reserved-fields, python |
| {verification.first_break} | error_code | critical | ledger, tamper-detection, hash-chain, corruption, python |
| max_bytes must be positive, got {max_bytes} | validation | warning | ledger, rotation, invalid-argument, config, python |
| {result.first_break} | error_code | critical | ledger, rotation, tamper-detection, corruption, python |
| run_id must not be empty | validation | error | manifest, run-id, missing-required-field, python |
| timestamp must not be empty | validation | error | manifest, timestamp, missing-required-field, python |
| duplicate skill names in manifest input: {names} | validation | error | manifest, skills, duplicate-key, python |
| unknown hypothesis status '{status}'. Allowed: {allowed} | validation | error | python, validation, enum, hypotheses |
| title is required | validation | error | python, validation, required-field |
| thesis is required | validation | error | python, validation, required-field |
| run_card_path or backtest_run_dir is required | validation | error | python, validation, required-argument, backtest |
| invalid hypotheses storage JSON: {self.path} | validation | critical | python, json, corrupt-file, persistence |
| hypotheses storage must contain a JSON list | validation | critical | python, json, schema, persistence |
| hypothesis not found: {hypothesis_id} | validation | error | python, not-found, key-error |
| memory name must not be empty or whitespace-only | validation | error | python, validation, required-field, memory |
| memory_type must be one of: {', '.join(MEMORY_TYPES)} | validation | error | python, validation, enum, memory |
| display_currency must be USD or CNY | validation | error | python, validation, currency, config |
| sources must be a list | validation | error | python, config, json, schema |
| at most 50 portfolio sources are allowed | validation | warning | python, config, limit, quota |
| each portfolio source must be an object | validation | error | python, config, json, schema |
| invalid portfolio connection id: {connection_id or '?'} | validation | error | python, config, regex, identifier |
| connection is not eligible for read-only portfolios: {connec | validation | error | python, config, authorization, profiles |
| portfolio connection ids must be unique | validation | error | python, config, uniqueness, duplicates |
| portfolio source labels must contain 1 to 80 printable chara | validation | error | python, config, validation, label |
| invalid portfolio settings: {exc} | validation | critical | python, json, config, io-error |
| invalid portfolio settings: root must be an object | validation | error | python, json, config, portfolio, schema-validation |
| {source} produces a non-ASCII HTTP header ({name!r}). Use an | validation | error | http-headers, ascii, validation, llm-provider |
| {source} produces an invalid multiline HTTP header ({name!r} | validation | error | http-headers, header-injection, validation, security |
| Anthropic provider requires langchain-anthropic. Install the | exception | error | anthropic, missing-dependency, pip, llm-provider |
| LANGCHAIN_MODEL_NAME is not set | exception | error | configuration, missing-env-var, llm-provider |
| VIBE_TRADING_DEEPSEEK_ADAPTER=native requires langchain-deep | exception | error | deepseek, missing-dependency, configuration, llm-provider |
| langchain-openai is not installed | exception | critical | openai, missing-dependency, pip, llm-provider |
| oauth-cli-kit is not installed. Run: pip install oauth-cli-k | exception | error | oauth, codex, missing-dependency, pip |
| No supported file-lock backend for Codex OAuth refresh | exception | error | oauth, file-locking, platform-support, codex |
| OpenAI Codex OAuth requires oauth-cli-kit. Install dependenc | exception | error | oauth, codex, missing-dependency, login |
| The Vibe-Trading Codex OAuth session was invalidated | exception | critical | oauth, codex, token-invalidated, re-authentication |
| The Codex backend rejected the access token and refresh did | exception | critical | oauth, codex, token-rejected, re-authentication |
| OpenAI Codex OAuth only supports https://chatgpt.com/backend | validation | error | codex, url-validation, configuration, oauth |
| OpenAI Codex response failed: {str(detail)[:500]} | exception | error | codex, streaming, sse, upstream-error |
| OpenAI Codex OAuth requires httpx. Install dependencies firs | exception | critical | httpx, missing-dependency, codex, llm-provider |
| brinson_fachler needs at least one sector | validation | error | quantlib, attribution, validation, empty-input |
| portfolio and benchmark weights must sum to the same total f | validation | error | quantlib, attribution, weights-validation |
| sector {sector!r} has portfolio weight {w_p!r} but no portfo | validation | error | quantlib, attribution, missing-data |
| sector {sector!r} has no portfolio return and no benchmark r | validation | error | quantlib, attribution, missing-data |
| survival_prob must be in (0.0, 1.0], got {survival_prob} | exception | error | credit, survival-probability, hazard-rate, input-validation, python |
| tenor_years must be strictly positive, got {tenor_years} | exception | error | credit, hazard-rate, tenor, input-validation, python |
| spread_bps must be non-negative, got {spread_bps} | exception | error | cds, credit-default-swap, spread, input-validation, python |
| recovery_rate must be in [0.0, 1.0), got {recovery_rate} | exception | error | cds, recovery-rate, credit, input-validation, python |
| notional must be strictly positive, got {notional} | exception | error | cds, notional, credit, input-validation, python |
| payment_frequency must be positive, got {payment_frequency} | exception | error | cds, payment-frequency, credit, input-validation, python |
| ead must be non-negative, got {ead} | exception | error | credit, expected-loss, exposure, input-validation, python |
| pd must be in [0.0, 1.0], got {pd} | exception | error | credit, probability-of-default, expected-loss, input-validation, python |
| lgd must be in [0.0, 1.0], got {lgd} | exception | error | credit, lgd, expected-loss, input-validation, python |
| ead must be strictly positive, got {ead} | exception | error | credit-var, vasicek, exposure, input-validation, python |
| pd must be in (0.0, 1.0), got {pd} | exception | error | credit-var, vasicek, probability-of-default, input-validation, python |
| asset_correlation must be in [0.0, 1.0), got {asset_correlat | exception | error | credit-var, vasicek, correlation, input-validation, python |
| confidence must be in (0.0, 1.0), got {confidence} | exception | error | credit-var, vasicek, confidence-level, input-validation, python |
| price, face, par_amount must be positive and spread_duration | exception | error | credit, dv01, spread-duration, input-validation, python |
| label_end_times is empty | exception | error | cross-validation, purged-kfold, pandas, empty-input, python |
| label_end_times must be 1-D, got shape {span_ends.shape} | exception | error | cross-validation, numpy, dimensionality, input-validation, python |
| label_end_times holds a non-finite value | exception | error | cross-validation, nan, numpy, input-validation, python |
| a label cannot end before the observation it belongs to star | validation | error | crossvalidation, data-validation, label-leakage, quantlib |
| label_end_times has {span_ends.size} entries but the sample | validation | error | crossvalidation, shape-mismatch, data-validation, quantlib |
| n_folds must be at least {MIN_FOLDS}, got {n_folds} | validation | error | crossvalidation, argument-validation, quantlib |
| {n_samples} samples cannot make {n_folds} folds | validation | error | crossvalidation, insufficient-data, argument-validation, quantlib |
| embargo_fraction must be in [0, 1), got {embargo_fraction} | validation | error | crossvalidation, argument-validation, embargo, quantlib |
| Purge and embargo removed all training samples for fold {fol | validation | error | crossvalidation, purging, embargo, empty-train-set, quantlib |
| groups array cannot be empty | validation | error | crossvalidation, group-kfold, empty-input, quantlib |
| {n_groups} unique groups cannot make {n_folds} folds | validation | error | crossvalidation, group-kfold, insufficient-groups, quantlib |
| estimation window needs at least {MIN_ESTIMATION_OBSERVATION | validation | error | event-study, numpy, validation, minimum-sample |
| market returns are constant over the estimation window, so b | validation | error | event-study, ols, unidentified-parameter |
| event_window start must be <= end, got {event_window} | validation | error | event-study, argument-validation |
| estimation_gap must be >= 0, got {estimation_gap} | validation | error | event-study, argument-validation |
| estimation_window must be at least {MIN_ESTIMATION_OBSERVATI | validation | error | event-study, minimum-sample, argument-validation |
| events is empty | validation | error | event-study, empty-input |
| market_returns is missing {len(missing_market)} label(s) pre | validation | error | event-study, pandas, index-alignment |
| no event could be measured; reasons: {reasons} | validation | error | event-study, no-valid-events |
| winsorise must be in [0, 0.5), got {winsorise} | validation | error | factormodel, winsorisation, argument-validation |
| a cross-section needs at least {MIN_CROSS_SECTION} finite va | validation | error | factormodel, minimum-sample, cross-section |
| market_caps is missing {len(missing)} asset(s) present in va | validation | error | factormodel, pandas, index-alignment |
| no asset has both a finite value and a positive market cap | validation | error | factormodel, market-caps, empty-input |
| the characteristic has no cross-sectional variation, so a z- | validation | error | factormodel, z-score, zero-variance |
| characteristics frame is empty | validation | error | factormodel, empty-input, dataframe |
| no factor could be built; characteristics carries none of th | validation | error | factormodel, column-mismatch, dataframe |
| cross-sectional regression needs at least {MIN_CROSS_SECTION | validation | error | factormodel, cross-section, minimum-sample |
| {design.shape[1]} regressors but only {design.shape[0]} asse | validation | error | factormodel, regression, degrees-of-freedom |
| market_caps must be positive and defined for every asset in | validation | error | factormodel, market-caps, wls |
| the exposure matrix is collinear with the market factor or w | validation | error | factormodel, collinearity, regression |
| holdings is empty | exception | error | quantlib, factormodel, empty-input, validation |
| exposures has no factor columns | exception | error | quantlib, factormodel, empty-input, validation |
| style drift needs at least 2 dates, got {exposure_history.sh | exception | error | quantlib, factormodel, time-series, validation |
| portfolio_exposures and factor_returns share no factor; expo | exception | error | quantlib, factormodel, index-alignment, attribution |
| portfolio_weights cannot be empty | exception | error | quantlib, factormodel, empty-input, validation |
| portfolio_weights contains non-finite values | exception | error | quantlib, factormodel, nan, inf, validation |
| exposures must be a non-empty DataFrame | exception | error | quantlib, factormodel, type-validation, dataframe |
| exposures contains non-finite values | exception | error | quantlib, factormodel, nan, inf, validation |
| factor_cov must be a non-empty DataFrame | exception | error | quantlib, factormodel, type-validation, covariance |
| factor_cov contains non-finite values | exception | error | quantlib, factormodel, nan, inf, covariance |
| No matching assets between weights ({sorted(w_series.index)} | exception | error | quantlib, factormodel, index-alignment, identifiers |
| No matching factors between exposures ({sorted(X.columns)}) | exception | error | quantlib, factormodel, index-alignment, factors |
| factor_cov matrix must be symmetric | exception | error | quantlib, factormodel, covariance, symmetry, linear-algebra |
| factor_cov matrix must be positive semi-definite | exception | error | quantlib, factormodel, covariance, psd, eigenvalue |
| specific_variances contains non-finite values | exception | error | quantlib, factormodel, nan, inf, specific-risk |
| method must be 'spearman' or 'pearson', got {method!r} | exception | error | quantlib, factormodel, ic-analysis, enum-validation |
| factor_panel and forward_returns must be non-empty | exception | error | quantlib, factormodel, empty-input, ic-analysis |
| No common dates and assets between factor_panel and forward_ | exception | error | quantlib, factormodel, ic-analysis, index-alignment |
| No cross-section had at least {min_cross_section} valid asse | exception | error | quantlib, factormodel, ic-analysis, insufficient-data |
| unknown day_count {day_count!r}; expected one of {DAY_COUNT_ | exception | error | quantlib, fixedincome, day-count, enum-validation |
| latest valuation on {marks[-1].date} is {value!r}; a residua | validation | error | fund-math, valuation, rvpi, sign-convention |
| paid-in capital is {paid_in!r}; a capital multiple is undefi | validation | error | fund-math, paid-in-capital, dpi, moic, configuration |
| preferred rate must be non-negative, got {rate!r} | validation | error | fund-math, preferred-return, hurdle-rate, validation |
| compounding={compounding!r} is not one of {PREFERRED_COMPOUN | validation | error | fund-math, preferred-return, compounding, enum-validation |
| as_of is required for an empty series | validation | error | fund-math, preferred-return, empty-series, required-parameter |
| contribution on {flow.date} is after as_of={measurement}; a | validation | error | fund-math, preferred-return, date-ordering, as-of |
| tier {self.name!r} has a negative {label} of {value!r} | validation | error | fund-math, waterfall, tier-allocation, invariant |
| tier {self.name!r} does not conserve cash: lp {self.lp_amoun | validation | error | fund-math, waterfall, conservation-invariant, rounding |
| waterfall does not reconcile on {label}: tiers give {compute | validation | error | fund-math, waterfall, reconciliation, invariant |
| {label} must be non-negative, got {value!r} | validation | error | fund-math, waterfall, validation, sign-convention |
| carry_rate must be in [0, 1), got {carry_rate!r} | validation | error | fund-math, waterfall, carry-rate, percent-vs-fraction |
| catch_up_rate must be in [0, 1], got {catch_up_rate!r} | validation | error | fund-math, waterfall, catch-up-rate, percent-vs-fraction |
| catch_up_rate={catch_up_rate!r} must exceed carry_rate={carr | validation | error | fund-math, waterfall, catch-up, carry, configuration |
| index_levels must be a pandas Series of index levels indexed | validation | error | fund-math, pme, pandas, type-validation |
| index_levels is empty; a public market equivalent needs a be | validation | error | fund-math, pme, empty-data, benchmark |
| index_levels has more than one entry for {day}; resolve the | validation | error | fund-math, pme, duplicate-dates, time-series |
| index level on {day} is {raw_level!r}; index levels must be | validation | error | fund-math, pme, nan, data-quality |
| index_levels has no entry for {day} (needed for {flow_descri | validation | error | fund-math, pme, missing-data, date-alignment |
| every p-value must lie in [0, 1] | validation | error | statistics, multiple-testing, input-validation, p-value |
| n_splits must be an even number >= 4, got {n_splits} | validation | error | backtesting, cscv, pbo, input-validation |
| performance must be 2-D, got shape {matrix.shape} | validation | error | backtesting, cscv, shape-validation, numpy |
| CSCV ranks strategies against each other and needs at least | validation | error | backtesting, cscv, pbo, validation |
| {n_rows} rows split {n_splits} ways gives {subset_size} row( | validation | error | backtesting, cscv, sample-size, sharpe |
| no split produced a usable Sharpe; every strategy may have z | validation | error | backtesting, cscv, zero-variance, data-quality |
| unknown barrier type {barrier_type!r}; valid types: {BARRIER | validation | error | options, barrier-option, input-validation, string-enum |
| unrecognised option_type {option_type!r}. Accepted (any case | validation | error | options, option-type, input-validation, string-enum |
| T must be > 0 to imply a volatility, got {T} | validation | error | options, implied-volatility, time-to-maturity, validation |
| S and K must be > 0, got S={S}, K={K} | validation | error | options, implied-volatility, input-validation, positive-values |
| market price {market_price} is below intrinsic value {lower} | validation | error | options, implied-volatility, no-arbitrage, intrinsic-value |
| market price {market_price} is at or above the no-arbitrage | validation | error | options, implied-volatility, no-arbitrage, price-bounds |
| Spot, strike, and barrier must be strictly positive, got S={ | validation | error | options, barrier-option, input-validation, positive-values |
| Unhandled barrier type {b_type} | validation | error | options, barrier-option, internal-invariant, unreachable-code |
| valuations[{index}] must be a (date, value) pair, got {type( | validation | error | performance, valuation, input-validation, data-shape |
| valuations[{index}] must have exactly two elements (date, va | validation | error | performance, valuation, input-validation, tuple-length |
| a return needs an opening and a closing valuation; got {len( | validation | error | performance, valuation, minimum-data, input-validation |
| valuation on {when} must be numeric, got {raw_value!r} | validation | error | performance, valuation, type-coercion, data-quality |
| valuation on {when} must be finite, got {raw_value!r}; a mis | validation | error | performance, valuation, nan, data-quality |
| two valuations share the date {earlier[0]}; a single day can | validation | error | quantlib, valuations, duplicate-date, input-validation |
| a kind cannot be both external and internal; overlapping: {' | validation | error | quantlib, cash-flows, classification, config-overlap |
| cash-flow kind {flow.kind!r} on {flow.date} is classified ne | validation | error | quantlib, cash-flows, unclassified-kind, input-validation |
| cash flow on {when} lies outside the valuation window {first | validation | error | quantlib, cash-flows, window-mismatch, twr |
| cash flow on {when} coincides with the opening valuation and | validation | error | quantlib, twr, flow-timing, double-counting |
| returns contains no finite observation | exception | error | quantlib, risk, validation, nan, valueerror |
| confidence must be in (0, 1), got {confidence} | exception | error | quantlib, risk, validation, confidence, valueerror |
| horizon must be >= 1, got {horizon} | exception | error | quantlib, risk, validation, horizon, valueerror |
| parametric_var needs at least 2 observations for a std estim | exception | error | quantlib, risk, parametric-var, insufficient-data, valueerror |
| equity must be 1-D, got shape {array.shape} | exception | error | quantlib, risk, drawdown, shape-validation, valueerror |
| equity contains no finite observation | exception | error | quantlib, risk, drawdown, nan, empty-input, valueerror |
| equity must be strictly positive to express drawdown as a fr | exception | error | quantlib, risk, drawdown, positive-values, valueerror |
| s0 must be > 0, got {s0} | exception | error | quantlib, risk, monte-carlo, gbm, validation, valueerror |
| sigma must be >= 0, got {sigma} | exception | error | quantlib, risk, monte-carlo, gbm, volatility, valueerror |
| n_steps and n_paths must be >= 1, got {n_steps} and {n_paths | exception | error | quantlib, risk, monte-carlo, gbm, simulation-size, valueerror |
| steps_per_year must be >= 1, got {steps_per_year} | exception | error | quantlib, risk, monte-carlo, gbm, time-discretization, valueerror |
| paths must be 2-D with >= 2 columns, got shape {matrix.shape | exception | error | quantlib, risk, monte-carlo, matrix-shape, valueerror |
| paths column 0 (the starting price) must be strictly positiv | exception | error | quantlib, risk, monte-carlo, positive-values, valueerror |
| threshold_pct must be in (0, 100), got {threshold_pct} | exception | error | quantlib, risk, gpd, extreme-value, validation, valueerror |
| fit_ornstein_uhlenbeck needs a series that varies; this one | exception | error | python, pandas, validation, constant-series, mean-reversion |
| find_hedge_ratio needs y and x sharing one index | exception | error | python, pandas, index-alignment, cointegration |
| find_hedge_ratio needs at least 3 aligned observations, got | exception | error | python, pandas, insufficient-data, regression |
| find_hedge_ratio needs an x that varies; this one is constan | exception | error | python, pandas, constant-regressor, rank-deficient |
| x_col and y_col must differ; both are {x_col!r}. A series ca | exception | error | python, granger-causality, validation, self-reference |
| granger_test needs max_lag >= 1, got {max_lag} | exception | error | python, granger-causality, parameter-validation |
| granger_test: column(s) not in data: {missing} | exception | error | python, pandas, missing-column, keyerror |
| fit_garch needs horizon >= 1, got {horizon} | exception | error | python, garch, volatility, parameter-validation |
| n_regimes must be at least 2, got {n_regimes} | exception | error | python, markov-switching, regime-models, parameter-validation |
| fit_markov_regime needs at least 50 finite observations, got | exception | error | python, markov-switching, insufficient-data, timeseries |
| autocorrelation_test needs lags >= 1, got {lags} | exception | error | python, statistics, argument-validation |
| lags must be < the number of observations; got lags={lags} f | exception | error | python, statistics, argument-validation |
| vif_test needs at least one column | exception | error | python, statistics, dataframe-validation |
| bootstrap_statistic needs a non-empty sample | exception | error | python, statistics, bootstrap, empty-data |
| bootstrap_statistic needs n_bootstrap >= 1, got {n_bootstrap | exception | error | python, statistics, bootstrap, argument-validation |
| bootstrap_statistic needs confidence in (0, 1), got {confide | exception | error | python, statistics, bootstrap, confidence-level |
| ModelArtifact.model_name must be one of {_MODEL_NAMES}, got | exception | error | python, dataclass, validation, artifact |
| ModelArtifact.input_hash must be a 64-character sha256 hex d | exception | error | python, sha256, hash-validation, artifact |
| {model}: generated_at must be a datetime.datetime supplied b | exception | error | python, datetime, type-validation, artifact |
| {model}: generated_at must be timezone-aware (e.g. datetime. | exception | error | python, datetime, timezone, naive-datetime |
| artifact: cannot normalize a value of type {type(value).__na | exception | error | python, serialization, hashing, type-validation |
| build_dcf_artifact: result must be a DCFResult, got {type(re | exception | error | python, type-validation, artifact, dcf |
| build_comps_artifact: result must be a CompsResult, got {typ | exception | error | python, type-validation, artifact, comps |
| build_three_statement_artifact: result must be a ThreeStatem | exception | error | python, type-validation, artifact, three-statement |
| diff_artifacts: cannot diff a {baseline.model_name!r} artifa | exception | error | python, artifact, diff, validation |
| export_dcf_workbook: expected a 'dcf' artifact, got {artifac | exception | error | python, excel, workbook, export, type-validation |
| export_comps_workbook: expected a 'comps' artifact, got {art | exception | error | python, excel, workbook, export, type-validation |
| export_three_statement_workbook: expected a 'three_statement | exception | error | python, excel, workbook, export, type-validation |
| comps.FlowMetricPeriods: fiscal_year_end_month must be 1-12, | exception | error | python, comps, fiscal-calendar, validation |
| comps.calendarise_metric: unknown policy {policy!r}, must be | exception | error | python, comps, calendarisation, enum-validation |
| {model}: {name} must be a finite number, got {val!r} | exception | error | valuation, nan, finite-check, comps, input-validation |
| comps: total_debt must be a finite number, got {total_debt!r | exception | error | valuation, enterprise-value, nan, finite-check |
| comps: cash_and_equivalents must be a finite number, got {ca | exception | error | valuation, enterprise-value, cash, nan |
| comps: {name} must be a finite number, got {value!r} | exception | error | valuation, ev-bridge, optional-fields, nan |
| comps.enterprise_value: market_cap must be a finite number, | exception | error | valuation, market-cap, nan, finite-check |
| comps.equity_value_from_enterprise_value: enterprise_value m | exception | error | valuation, enterprise-value, nan |
| {model}: name is required and cannot be blank, got {name!r} | exception | error | valuation, required-field, blank-name, validation |
| {model}: eps_basis must be one of {EPS_BASES}, got {eps_basi | exception | error | valuation, eps-basis, enum, validation |
| comps.run_comps: unknown calendarisation_policy {calendarisa | exception | error | valuation, policy, enum, validation |
| peers | exception | error | valuation, missing-input, empty-list, comps |
| comps.run_comps: duplicate peer names in {names} | exception | error | valuation, duplicates, peer-set, comps |
| comps.run_comps: mixed eps_basis across the comp set {sorted | exception | error | valuation, eps-basis, consistency, comps |
| an assumption must be named | exception | error | valuation, assumption, required-field, validation |
| assumption {self.name!r} has no basis; state why this value | exception | error | valuation, assumption, justification, validation |
| MissingInputError(missing, model) | exception | error | valuation, missing-input, validation, required-fields |
| {model}: {name} must be a number, got {value!r} | exception | error | valuation, type-error, parsing, validation |
| {model}: {name} must be a finite positive number, got {numer | exception | error | valuation, positive-validation, nan, sign-error |
| {model}: {expected_name!r} must be supplied as an Assumption | exception | error | valuation, dcf, assumption, type-validation |
| {model}: expected an Assumption named {expected_name!r}, got | exception | error | valuation, dcf, assumption, swapped-arguments |
| {model}: {name} must be a number, got {value!r} | exception | error | valuation, type-error, parsing, wacc |
| {model}: {name} must be supplied as a non-negative magnitude | validation | error | valuation, sign-error, nan, magnitude |
| {model}: {name} must be a finite number, got {numeric!r} | validation | error | valuation, nan, infinity, input-validation |
| {model}: capital-structure weights must be non-negative, got | validation | error | valuation, wacc, weights, input-validation |
| {model}: capital-structure weights must sum to 1 (within {_R | validation | error | valuation, wacc, weights, normalization |
| WACCResult.wacc={self.wacc!r} does not match the weighted bl | validation | error | valuation, wacc, dataclass-invariants, reconciliation |
| wacc: capital_structure_basis must be one of {CAPITAL_STRUCT | validation | error | valuation, wacc, enum-validation |
| wacc: tax_rate must be within [0, 1], got {tax_rate!r} | validation | error | valuation, wacc, percent-vs-fraction, range-validation |
| wacc | validation | error | valuation, wacc, missing-input, required-field |
| wacc: market value of equity plus debt is zero (D + E = 0); | validation | error | valuation, wacc, division-by-zero, degenerate-input |
| FCFFYear.year must be >= 1, got {self.year!r} | validation | error | valuation, fcff, off-by-one, dataclass-invariants |
| FCFFYear(year={self.year}).nopat={self.nopat!r} does not mat | validation | error | valuation, fcff, reconciliation, rounding |
| FCFFYear(year={self.year}).fcff={self.fcff!r} does not match | validation | error | valuation, fcff, sign-convention, reconciliation |
| fcff_bridge: tax_rate must be within [0, 1], got {tax_rate!r | validation | error | valuation, fcff, percent-vs-fraction, range-validation |
| fcff_bridge: ebit forecast is empty; at least one projection | validation | error | valuation, fcff, empty-input |
| fcff_bridge: {name} has {len(values)} year(s), expected {hor | validation | error | valuation, fcff, length-mismatch, alignment |
| TerminalValueResult.terminal_growth.value={self.terminal_gro | validation | error | valuation, terminal-value, gordon-growth, dataclass-invariants |
| terminal_value: wacc_rate must exceed -1, got {wacc_rate!r} | validation | error | valuation, terminal-value, wacc, domain-error |
| terminal_value: terminal_growth ({growth!r}) must be strictl | validation | error | valuation, terminal-value, gordon-growth, gordon-growth-guard |
| NetDebtBridgeResult.equity_value={self.equity_value!r} does | validation | error | |
| run_dcf: capital_structure_basis must be one of {CAPITAL_STR | validation | error | valuation, dcf, enum-validation, invalid-argument |
| run_dcf: discounting_convention must be one of {DISCOUNTING_ | validation | error | valuation, dcf, enum-validation, discounting |
| run_dcf: terminal_value_method must be one of {TERMINAL_VALU | validation | error | valuation, dcf, enum-validation, terminal-value |
| BalanceSheetError(balance_sheet.period, assets, liabilities, | validation | error | valuation, three-statement, accounting-identity, balance-sheet |
| {model}: {name} must be a number, got {value!r} | validation | error | valuation, three-statement, type-coercion, invalid-argument |
| {model}: {name} must be a finite number, got {numeric!r} | validation | error | valuation, three-statement, nan, infinity |
| {MODEL_NAME}: every driver sequence must share one length (o | validation | error | valuation, three-statement, shape-mismatch, drivers |
| {MODEL_NAME}: driver sequences are empty; at least one proje | validation | error | valuation, three-statement, empty-input |
| ConvergenceError(period, iterations, delta, circularity_tole | error_code | error | valuation, three-statement, convergence, iteration-limit |
| {MODEL_NAME}: max_circularity_iterations must be >= 1, got { | validation | error | valuation, three-statement, invalid-argument, config |
| returns and var must cover exactly the same labels; {len(onl | validation | error | var-backtest, pandas, index-alignment |
| returns must be 1-D, got shape {ret_values.shape} | validation | error | var-backtest, numpy, shape-mismatch |
| var must be 1-D or scalar, got shape {var_values.shape} | validation | error | var-backtest, numpy, shape-mismatch |
| returns and var must be the same length, got {ret_values.siz | validation | error | var-backtest, shape-mismatch, length |
| returns is empty | validation | error | var-backtest, empty-input |
| no observation has a finite return and a finite var | validation | error | var-backtest, nan, data-quality |
| observations must be > 0, got {observations} | validation | error | var-backtest, kupiec, invalid-argument |
| violations must be in [0, {observations}], got {violations} | validation | error | var-backtest, kupiec, range-validation |
| confidence must be in (0, 1), got {confidence} | validation | error | var-backtest, kupiec, range-validation, confidence-level |
| significance must be in (0, 1), got {significance} | validation | error | var-backtest, kupiec, range-validation, significance-level |
| breaches must be 1-D, got shape {flags.shape} | validation | error | python, numpy, argument-validation, shape-mismatch |
| breaches needs at least 2 observations to hold a transition, | validation | error | python, validation, insufficient-data, statistics |
| var_backtest needs at least 2 aligned observations, got {ret | validation | error | python, validation, data-alignment, insufficient-data, var-backtest |
| cron schedule has no matching time within search window: {sc | validation | error | python, cron, scheduler, dst, timezone |
| max_consecutive_failures must be at least 1 | validation | error | python, scheduler, config-validation, retry |
| retry_base_delay_ms must be non-negative | validation | error | python, scheduler, config-validation, retry |
| retry_max_delay_ms must be at least retry_base_delay_ms | validation | error | python, scheduler, config-validation, retry |
| cron field {part!r} is out of range; expected {low}-{high} | validation | error | python, cron, validation, scheduler |
| cron field {part!r} is not valid; each field must be *, */n, | validation | error | python, cron, validation, scheduler, regex |
| cron range {atom!r} is reversed; expected low-high | validation | error | python, cron, validation, scheduler |
| cron field {atom!r} is out of range; expected {low}-{high} | validation | error | python, cron, validation, scheduler, out-of-range |
| schedule must be a non-empty string | validation | error | python, cron, validation, scheduler, type-error |
| interval is too large; expected at most 15 digits of millise | validation | error | python, cron, validation, scheduler, unit-confusion |
| schedule must be a positive integer (ms) or a 5-field cron s | validation | error | python, cron, validation, scheduler |
| timezone must be a non-empty IANA timezone key or null | validation | error | python, timezone, validation, scheduler, config |
| timezone {tz!r} is not a recognized IANA timezone key | validation | error | timezone, validation, scheduled-research, zoneinfo |
| 'delivery' must be an object or null | validation | error | deserialization, type-error, json, scheduled-research |
| unknown delivery status {raw_status!r} | validation | error | deserialization, enum, validation, scheduled-research |
| 'delivery.{name}' must be a string or null | validation | error | deserialization, type-error, scheduled-research |
| 'delivery.updated_at' must be an integer (epoch ms) or null | validation | error | deserialization, timestamp, epoch-milliseconds, scheduled-research |
| 'delivery.attempts' must be a non-negative integer | validation | error | deserialization, type-error, retry-counter, scheduled-research |
| 'id', 'prompt', and 'schedule' must be strings | validation | error | deserialization, type-error, cron, scheduled-research |
| 'next_run_at' and 'created_at' must be integers (epoch ms) | validation | error | deserialization, timestamp, epoch-milliseconds, scheduled-research |
| 'last_run_at' must be an integer (epoch ms) or null | validation | error | deserialization, timestamp, epoch-milliseconds, scheduled-research |
| 'consecutive_failures' must be a non-negative integer | validation | error | deserialization, type-error, failure-counter, scheduled-research |
| 'last_error' must be a string or null | validation | error | deserialization, type-error, error-message, scheduled-research |
| 'failure_kind' must be 'dispatch', 'schedule', or null | validation | error | deserialization, validation, enum, scheduled-research |
| 'title' must be a string | validation | error | deserialization, type-error, scheduled-research |
| 'source_type' must be 'prompt' or 'playbook' | validation | error | deserialization, validation, enum, scheduled-research |
| 'playbook_slug' must be a string or null | validation | error | deserialization, type-error, playbook, scheduled-research |
| 'end_at' must be an integer (epoch ms) or null | validation | error | deserialization, timestamp, epoch-milliseconds, scheduled-research |
| '{name}' must be a string or null | validation | error | deserialization, type-error, delivery-routing, scheduled-research |
| playbook {self.slug!r} has no variable {key!r}; declared: {s | validation | error | playbook, template-variables, validation, scheduled-research |
| playbook variable {key!r} is {len(text)} chars; the cap is { | validation | error | playbook, input-length, validation, scheduled-research |
| playbook {path}: {key!r} must be a non-empty list of strings | validation | error | playbook, frontmatter, yaml, validation |
| unsupported proposal operation | validation | error | scheduled-research, proposal, validation, state-corruption |
| end_at must be RFC3339 text or epoch milliseconds | validation | error | scheduled-research, validation, end-at, type-confusion |
| end_at must be a valid RFC3339 timestamp | validation | error | scheduled-research, validation, datetime, rfc3339 |
| end_at must include an explicit timezone offset | validation | error | scheduled-research, validation, datetime, timezone |
| origin delivery requires the originating session | validation | error | scheduled-research, delivery, session, validation |
| the originating session is not an IM conversation | validation | error | scheduled-research, delivery, im-channel, session-config |
| title is required | validation | error | scheduled-research, validation, required-field |
| source and schedule must be objects | validation | error | scheduled-research, validation, schema |
| delivery must be an object | validation | error | scheduled-research, validation, delivery, schema |
| source.prompt is required | validation | error | scheduled-research, validation, prompt, required-field |
| source.playbook_slug is required | validation | error | scheduled-research, validation, playbook, required-field |
| source.variables must be an object | validation | error | scheduled-research, validation, playbook, variables |
| source.kind must be 'prompt' or 'playbook' | validation | error | scheduled-research, validation, enum |
| end_at must be in the future | validation | error | scheduled-research, validation, end-at, time |
| the first scheduled run occurs after end_at | validation | error | scheduled-research, validation, schedule, end-at |
| delivery.target_ref is required for configured delivery | validation | error | scheduled-research, delivery, validation, required-field |
| delivery.mode must be 'in_app', 'origin', or 'configured' | validation | error | scheduled-research, delivery, validation, enum |
| Session {session_id} not found | http | error | session, not-found, lookup |
| Shadow profile not found: {shadow_id} | http | error | |
| today must be an ISO date string or None, got {today!r} | validation | error | python, date-parsing, valueerror |
| invalid regime {self.regime!r}; expected one of {REGIMES} | validation | error | python, validation, enum |
| invalid evidence_stage {self.evidence_stage!r}; expected one | validation | error | python, validation, enum |
| evidence_stage {self.evidence_stage!r} claims a computed res | validation | error | python, provenance, validation, audit |
| cannot mark a model APPROVED from validation_status={current | validation | error | python, state-machine, model-registry, validation |
| intended_use is required and must be non-empty | validation | error | python, model-registry, required-field |
| limitations is required and must be non-empty | validation | error | python, model-registry, required-field |
| artifact '{artifact.name}' already exists in universe '{arti | validation | error | python, sqlite, duplicate-key, model-registry |
| artifact '{artifact.name}' already exists in universe '{arti | validation | error | python, duplicate, model-registry, in-memory-store |
| invalid preset name: {name!r} | validation | error | python, path-traversal, input-validation |
| Preset {name!r} not found in {_redact_home(USER_PRESETS_DIR) | exception | error | python, file-not-found, yaml, presets |
| retry_number must be at least 1 | validation | error | python, retry, off-by-one |
| run_id {run_id!r} must be a bare run directory name | validation | error | python, path-traversal, input-validation |
| Run directory not found: {rd.name} | exception | error | python, file-not-found, swarm, persistence |
| Task not found: {path.name} | exception | error | python, file-not-found, swarm, tasks |
| Task '{task.id}' depends on unknown task '{dep}' | validation | error | python, dag, dependency-validation |
| Cycle detected in task DAG: {' -> '.join(cycle)} | validation | error | python, dag, cycle-detection |
| DAG contains a cycle: processed {processed}/{len(tasks)} tas | validation | error | python, dag, cycle-detection, scheduling |
| Invalid swarm agent id {agent_id!r}: expected one safe path | validation | error | python, path-traversal, input-validation, swarm |
| Invalid swarm agent id {agent_id!r}: artifact path escapes t | validation | error | security, path-traversal, swarm, validation |
| Invalid swarm agent id {agent_id!r}: artifact path must be o | validation | error | validation, filesystem, swarm |
| period must be string, got {type(period).__name__} | validation | error | type-validation, api-parameters, alpha-bench |
| period {period!r} must be YYYY-YYYY or YYYY-MM-DD/YYYY-MM-DD | validation | error | date-format, validation, alpha-bench |
| start_date ({start}) > end_date ({end}) | exception | error | date-validation, alpha-bench |
| universe {universe!r} not recognized; expected one of {sorte | exception | error | validation, universe, alpha-bench |
| universe {universe!r} produced empty panel for {start}..{end | exception | error | network, data-loading, runtime, alpha-bench |
| btc-usdt is single-asset; cross-sectional IC needs >=2 instr | exception | error | validation, crypto, alpha-bench |
| TUSHARE_TOKEN not in agent/.env or environment; required for | exception | error | config, env-var, credentials, tushare |
| tushare not installed: {exc} | exception | error | dependency, import, tushare, environment |
| csi300: no symbol survived corporate-action adjustment — pro | exception | error | tushare, permissions, data-quality, corporate-actions |
| panel missing 'close' — cannot derive forward returns | exception | error | data-validation, panel, alpha-bench |
| {alpha_id}: IC series empty — insufficient overlap between f | exception | error | data-alignment, ic-computation, alpha-bench |
| alpha_id and zoo are mutually exclusive | exception | error | api-parameters, validation, mutually-exclusive |
| start_date must be YYYY-MM-DD | exception | error | date-format, validation, autopilot |
| end_date must be YYYY-MM-DD | exception | error | date-format, validation, autopilot |
| start_date must be on or before end_date | exception | error | date-validation, autopilot |
| valuations must be an array of at least two {date, value} ob | exception | error | validation, api-parameters, cashflow-analytics |
| valuations may contain at most {_MAX_VALUATIONS} entries | exception | error | limits, validation, cashflow-analytics |
| valuations[{index}] must be an object with date and value | exception | error | validation, payload-shape, cashflow-analytics |
| valuations[{index}] needs both 'date' and 'value' | exception | error | cashflow-analytics, valuations, input-validation, python |
| valuations[{index}].value must be numeric | exception | error | cashflow-analytics, valuations, type-coercion, python |
| valuations[{index}].value must be finite | exception | error | cashflow-analytics, valuations, nan-infinity, python |
| pass either flows or flows_path, not both | exception | error | cashflow-analytics, mutually-exclusive-params, input-validation, python |
| flows_columns must be an object mapping field to column name | exception | error | cashflow-analytics, flows-columns, type-validation, python |
| flows must be an array of {date, amount, kind} objects | exception | error | cashflow-analytics, flows, type-validation, python |
| flows may contain at most {_MAX_INLINE_FLOWS} entries | exception | error | cashflow-analytics, flows, payload-limit, python |
| flows[{index}] must be an object | exception | error | cashflow-analytics, flows, type-validation, python |
| flows[{index}] has no currency and no top-level currency was | exception | error | cashflow-analytics, currency, required-field-missing, python |
| flows[{index}] is missing {exc.args[0]!r} | exception | error | cashflow-analytics, flows, required-field-missing, python |
| flows[{index}]: {exc} | exception | error | validation, cashflow, input-schema, python |
| flow_timing must be {FLOW_TIMING_END!r} or {FLOW_TIMING_STAR | exception | error | validation, enum, cashflow, python |
| {field_name} must be a non-empty array of kind labels | exception | error | validation, list, cashflow, python |
| {field_name} entries must be non-empty strings | exception | error | validation, string, cashflow, python |
| inverted page range: {part!r} | exception | error | validation, pdf, page-range, python |
| invalid date: {date!r}; expected YYYY-MM-DD | exception | error | validation, date-format, python |
| SEC investment-company series/class index unavailable ({'; ' | exception | error | network, sec-edgar, upstream-data, runtime-error, python |
| EDGAR filing feed did not parse: {exc} | exception | error | network, sec-edgar, xml-parsing, rate-limit, python |
| N-PORT document did not parse: {exc} | exception | error | sec-edgar, xml-parsing, nport, network, python |
| only numeric constants are allowed | exception | error | validation, arithmetic, ast, sandboxing, python |
| unsupported operator: {type(node.op).__name__} | exception | error | python, ast, sandbox, expression-eval, validation |
| unsupported unary operator: {type(node.op).__name__} | exception | error | python, ast, sandbox, expression-eval, validation |
| disallowed element in expression: {type(node).__name__} | validation | error | python, ast, sandbox, expression-eval, security |
| malformed expression: {exc} | validation | error | python, parsing, validation, expression-eval |
| loader returned {type(frame).__name__} for field {field!r}, | exception | error | python, pandas, type-mismatch, data-loader |
| audit must be a list | validation | error | python, json, validation, llm-io |
| audit rows must be objects | validation | error | python, json, validation, llm-io |
| audit rows require criterion_id and result | validation | error | python, validation, required-field, llm-io |
| artifact_path escapes the current run_dir | validation | error | python, security, path-traversal, validation |
| EDGAR full-text search returned no hits block: {message or p | exception | error | sec-edgar, http, api-contract, rate-limit |
| quarter {value!r} is not recognizable; use '2026Q1' or a qua | validation | error | python, date-parsing, validation |
| quarter {value!r} is not a calendar quarter end; use 03-31, | validation | error | python, date-parsing, validation |
| quarter year {year} is outside {_MIN_QUARTER_YEAR}..{date.to | validation | warning | python, date-parsing, range-check |
| SEC fails-to-deliver index listed no archives | exception | error | sec-edger, web-scraping, http, config |
| RapidOCR not installed: pip install rapidocr_onnxruntime | exception | error | ocr, dependency, import-error, python |
| legs must be a non-empty array | validation | error | validation, options, json, python |
| legs may contain at most {_MAX_LEGS} entries | validation | error | validation, options, limits |
| legs[{index}] must be an object | validation | error | validation, options, json |
| legs[{index}] has invalid strike or qty: {exc} | validation | error | validation, options, type-coercion |
| legs[{index}].qty must be a non-zero integer | validation | error | validation, options, integers |
| legs[{index}].premium must be numeric or null | validation | error | validation, options, type-coercion |
| {name} is required | validation | error | validation, required-field, options |
| {name} must be numeric | validation | error | validation, type-coercion, options |
| {name} must be finite | validation | error | validation, nan, options |
| spot_points must be an integer | validation | error | validation, boolean-vs-number, options |
| spot_points must be between {_MIN_SPOT_POINTS} and {_MAX_SPO | validation | error | validation, limits, options |
| spot_min must be non-negative | validation | error | validation, options, chart-bounds |
| spot_max must be greater than spot_min | validation | error | validation, chart-bounds, options |
| scenario_iv_values must be a non-empty array | validation | error | validation, options, volatility |
| scenario_iv_values may contain at most {_MAX_IV_SCENARIOS} e | validation | error | validation, limits, options |
| scenario_iv_values must contain numbers | validation | error | options-payoff, input-validation, type-coercion |
| scenario_iv_values must contain positive finite values | validation | error | options-payoff, input-validation, volatility |
| spot is required | validation | error | options-pricing, required-argument, missing-parameter |
| strike is required | validation | error | options-pricing, required-argument, missing-parameter |
| expiry_days is required | validation | error | options-pricing, required-argument, missing-parameter |
| volatility is required | validation | error | options-pricing, required-argument, missing-parameter |
| UNC paths are not allowed: {p!r} | validation | error | path-validation, windows, unc, security |
| Path {p!r} escapes the workspace root | validation | error | path-validation, workspace-containment, security |
| Path {file_path!r} escapes run_dir {run_dir!r} and is not in | validation | error | path-validation, allowed-roots, sandbox |
| run_dir is required to write/edit {file_path!r}, or the path | validation | error | path-validation, run-dir, allowed-roots |
| Path {p!r} is outside allowed {purpose} roots. {_describe_ro | validation | error | path-validation, import, environment-variable |
| run_dir {p!r} is outside allowed run roots. {_describe_roots | validation | error | run-dir, path-validation, environment-variable |
| run_id {run_id!r} must be a bare run directory name | validation | error | run-id, path-validation, identifier |
| run_id {run_id!r} was not found under allowed run roots. {_d | validation | error | run-id, not-found, filesystem |
| window must be >= 1, got {window} | validation | error | pattern-tool, window-validation, input-validation |
| window must be >= 2, got {window} | validation | error | pattern-tool, window-validation, regression |
| symbols must be a non-empty list of strings | validation | error | portfolio-risk, input-validation, symbols |
| too many symbols ({len(symbols)}); cap is {_MAX_SYMBOLS} | validation | error | portfolio-risk, limit, symbols |
| weights must be an object mapping symbol → number | validation | error | portfolio-risk, weights, input-validation |
| weights name symbols not in the basket: {sorted(unknown)} | validation | error | portfolio-risk, weights, key-mismatch |
| weights missing basket symbols: {sorted(missing)} | validation | error | portfolio-risk, weights, validation, input-validation |
| start_date {start} must be before end_date {end} | validation | error | portfolio-risk, date-validation, dates |
| no close prices returned for any requested symbol | validation | error | portfolio-risk, market-data, empty-response |
| unexpected market payload shape | validation | error | prediction-market, api-response, gamma |
| market exposes no CLOB outcome tokens | validation | error | prediction-market, clob, market-data |
| outcome '{outcome}' not in {names} | validation | error | prediction-market, outcome, validation |
| outcome has no matching CLOB token | validation | error | prediction-market, clob, data-integrity |
| __series__ needs a 'values' list | validation | error | quantlib, serialization, pandas, validation |
| __dataframe__ needs a 'data' list of rows | validation | error | quantlib, serialization, pandas, validation |
| {field} must be a positive integer, got {value!r} | validation | error | qveris, validation, positive-integer, input-validation |
| job_id is required for propose_cancel | validation | error | scheduled-research, tool-args, missing-parameter, validation |
| unsupported scheduled_research action {action!r} | validation | error | scheduled-research, tool-args, unsupported-action, dispatch |
| model governance fields were supplied ({sorted(supplied)}), | validation | error | sdm, model-governance, conditional-required, validation |
| {field} must be an integer, got {value!r} | validation | error | shadow-account, type-coercion, integer-args, validation |
| unknown section '{name}'; valid: {', '.join(_ALL_SECTIONS)} | validation | error | stock-profile, sections, enum-validation, invalid-value |
| {name} must be an integer, got {value!r} | validation | error | strategy-discovery, type-coercion, boolean-int, validation |
| {name} must be a number, got {value!r} | validation | error | strategy-discovery, type-coercion, boolean-number, validation |
| {name} must be a finite number, got {value!r} | validation | error | strategy-discovery, nan, infinity, finite-validation |
| {name} must be a string, got {value!r} | validation | error | strategy-discovery, type-coercion, string-args, validation |
| {name} is too long ({len(value)} chars; max {_MAX_STRING_PAR | validation | error | strategy-discovery, input-length, string-args, validation |
| {name} must be a boolean, got {value!r} | validation | error | strategy-discovery, boolean-coercion, string-args, validation |
| manifest path {manifest_path} could not be resolved: {exc} | validation | error | strategy-discovery, manifest, path-resolution, filesystem |
| manifest path {manifest_path} is outside the runtime root an | validation | error | strategy-discovery, manifest, path-allowlist, sandbox |
| manifest file {manifest_path} is missing or unreadable ({exc | validation | error | strategy-discovery, manifest, file-not-found, permissions |
| manifest file {manifest_path} is not valid JSON: {exc.msg} a | validation | error | strategy-discovery, manifest, json-parse, invalid-json |
| manifest file {manifest_path} must be a JSON object with a ' | validation | error | strategy-discovery, manifest, schema-validation, json-shape |
| provide exactly one of manifest_path or runs, not both | validation | error | strategy-discovery, mutually-exclusive-args, refresh, validation |
| TUSHARE_TOKEN is not configured | exception | error | tushare, config, env-var, api-token, fallback |
| tushare import failed: {exc} | exception | error | tushare, import-error, dependencies, virtualenv, fallback |
| invalid date for tushare fallback: {value!r} | validation | error | tushare, date-format, validation, fallback |
| unsupported Tushare symbol: {code} | validation | error | tushare, symbol-format, stock-code, validation |
| local connection {existing.id} already uses profile {existin | validation | error | python, trading, connection-store, profile-mismatch |
| each local connection must be an object | validation | error | python, json, settings-validation, configuration |
| invalid local connection id: {connection_id or '?'} | validation | error | python, validation, identifier-format, configuration |
| connection profile is not eligible for read-only portfolios: | validation | error | python, configuration, profile-validation, trading |
| connection label must contain 1 to 80 printable characters | validation | error | python, validation, label-constraints, configuration |
| connection credential_ref does not match its local transport | validation | error | python, credentials, configuration, integrity-check |
| profile must be 'paper', 'live-readonly' or 'live' | validation | error | python, alpaca, configuration, enum-validation |
| feed must be 'iex' or 'sip' | validation | error | python, alpaca, market-data, configuration |
| invalid Alpaca config at {path}: {exc} | validation | error | python, alpaca, json, configuration, file-io |
| {exc} | exception | error | binance, usdm-futures, account-snapshot, config-error, fail-closed |
| Configured profile is paper, but the resolved host '{host}' | exception | critical | binance, config-validation, testnet, host-mismatch, fail-closed |
| Configured profile is live, but the resolved host '{host}' i | exception | critical | binance, config-validation, live-trading, host-mismatch, fail-closed |
| Binance USD-M endpoint '{endpoint}' resolved to unapproved h | exception | error | binance, ccxt, url-validation, ssrf-prevention, usdm-futures |
| Binance USD-M position reads are incoherent | exception | error | binance, futures, data-consistency, race-condition |
| Binance USD-M Shadow Account supports USDT collateral only | exception | error | binance, futures, usdt, margin-asset, multi-assets-mode |
| Binance USD-M margin mode is missing | exception | error | binance, futures, type-validation, boolean-field |
| Binance USD-M isolated position requires positive isolated m | exception | error | binance, futures, isolated-margin, invariant |
| Binance USD-M cross position must report zero isolated margi | exception | error | binance, futures, cross-margin, invariant |
| Binance USD-M assets must include exactly one USDT row | exception | error | binance, futures, assets, duplicate-row |
| Binance USD-M Shadow Account supports the USDT asset only | exception | error | binance, futures, usdt-only, wallet-hygiene |
| Binance USD-M assets must include USDT | exception | critical | binance, usdm, futures, account-validation, usdt |
| Binance USD-M account totals are incoherent | exception | critical | binance, usdm, consistency-check, floating-point, account-validation |
| Binance USD-M {name} payload is invalid | exception | error | binance, usdm, payload-validation, type-check |
| Binance USD-M Shadow Account requires one-way position mode | exception | error | binance, usdm, position-mode, hedge-mode, configuration |
| duplicate {source} position symbol | exception | error | binance, usdm, duplicate-symbols, positions, validation |
| Binance USD-M field {name} must be numeric | exception | error | binance, usdm, type-validation, numeric-fields, parsing |
| Binance USD-M field {name} must be finite | exception | error | binance, usdm, nan, infinity, numeric-validation |
| Binance USD-M field {name} must be positive | exception | error | binance, usdm, positive-value, range-validation, leverage |
| Binance USD-M field {name} must be non-negative | exception | error | binance, usdm, negative-value, range-validation, sentinel-values |
| Binance USD-M field {name} must be an integer | exception | error | binance, usdm, integer-validation, type-validation, parsing |
| invalid JSON response: {exc} | exception | error | etoro, json, http, api-response |
| network error: {last_exc} | exception | error | etoro, network, timeout, retry |
| request failed without response | exception | error | etoro, http, invariant |
| instrument type catalog returned no rows | exception | error | etoro, catalog, instruments, empty-response |
| search query is required | validation | warning | etoro, validation, search |
| mode must be 'auto', 'symbol', 'discover', or 'type' | validation | warning | etoro, validation, enum |
| instrument_type_id is required for type browse (e.g. 10 for | validation | warning | etoro, instruments, type-browse |
| unsupported instrument_type_id {type_id} | validation | warning | etoro, instruments, validation |
| symbol is required | validation | warning | etoro, symbol, validation |
| invalid instrument id {instrument_id} | validation | warning | etoro, instrument-id, validation |
| instrument not found for symbol {token!r} | exception | error | etoro, symbol, not-found |
| at least one valid instrument_id is required | validation | warning | etoro, metadata, validation |
| instrumentIds batch limit is 50 | validation | warning | etoro, batch-limit, pagination |
| unsupported period {period!r} | validation | warning | etoro, candles, interval, validation |
| symbol is required | validation | error | etoro, order, symbol, validation |
| profile must be 'paper', 'live-readonly' or 'live' | validation | error | futu, config, profile, validation |
| invalid Futu config at {path}: {exc} | exception | error | futu, config, json, file-io |
| futu-api is not installed; run `pip install futu-api`. | exception | error | futu, dependency, import |
| No Futu OpenD gateway is listening at {cfg.host}:{cfg.port}. | exception | error | futu, opend, gateway, connection-refused |
| Configured acc_id {cfg.acc_id} was not found in the OpenD ac | exception | error | futu, account, config, mismatch |
| Longbridge SDK has no method '{name}' | exception | error | longbridge, sdk, version-mismatch, getattr, trading |
| profile must be 'paper', 'live-readonly' or 'live' | validation | error | mt5, config, validation, profile |
| invalid MT5 config at {path}: {exc} | exception | error | mt5, config, json, parse-error |
| Shoonya login failed: {error_msg} | exception | critical | shoonya, login, credentials, broker-auth |
| profile must be 'paper', 'live-readonly' or 'live' | validation | error | tiger, config, validation, profile |
| invalid Tiger config at {path}: {exc} | exception | error | tiger, config, json, file-io |
| tigeropen is not installed; run `pip install tigeropen`. | exception | error | tiger, dependency, import, pip |
| Tiger private key not found at {key_path} | exception | critical | tiger, private-key, config, file-not-found |
| Tiger account number is not configured | exception | error | tiger, config, account-number, validation |
| Configured profile is paper, but the account number is not a | exception | critical | tiger, profile-mismatch, paper-trading, safety-check |
| Configured profile is live, but the account number is a 17-d | exception | critical | tiger, profile-mismatch, live-trading, safety-check |
| profile must be 'paper', 'live-readonly' or 'live' | validation | error | trading212, config, validation, profile |
| base_url must start with http:// or https:// | validation | error | trading212, config, base-url, validation |
| invalid Trading 212 config at {path}: {exc} | exception | error | trading212, config, json, file-io |
| Trading 212 connector not configured: missing {', '.join(mis | exception | error | trading212, config, missing-fields, precondition |
| Trading 212 request failed: {exc} | http | error | trading212, network, timeout, http |
| Trading 212 API returned HTTP {response.status_code}: {_erro | http | error | trading212, http, rate-limit, api |
| Trading 212 API returned invalid JSON. | http | error | trading212, json, response-parsing, http |
| local connection profile does not match the requested plugin | validation | error | trading, connector, profile-mismatch, validation |
| broker must not be blank | validation | error | validation, trading, broker, blank-argument |
| expected data:<mime>;base64,<payload> | validation | error | data-url, base64, media, validation |
| unsupported data URL MIME type: {mime} | validation | error | mime-type, media, data-url, allowlist |
| invalid base64 payload | validation | error | base64, decoding, media, validation |
| decoded media exceeds {max_bytes} bytes | exception | warning | file-size, limit, media, upload |
| exit_threshold must be below enter_threshold | validation | error | hysteresis, thresholds, config-validation, numpy |
| need >= {min_bars} bars in each window (calm={len(calm)}, ev | validation | error | pandas, correlation, insufficient-data, index-alignment |
| Unsupported model_type: {model_type} | validation | error | machine-learning, enum-value, config, strategy |
| Unsupported platform: {query.platform} | validation | error | enum, dispatch, social-media, unsupported-value |