Error codes

Your code while it runs5

CodeWhat it meansKindWhere you see it
COMPUTE_FAILEDcompute() raised an error.RuntimeRuns
COMPUTE_NOT_PUREcompute() changed the strategy's own attributes or the data it was given.RuntimeRuns
HOOK_FAILEDA hook raised an error during the run.RuntimeRuns
PASS_HOOK_FAILEDscore, accept or report raised an error or returned a value Forge cannot use.RuntimeRuns
SIGNALS_INVALIDcompute() returned signals Forge cannot use.RuntimeRuns

When Forge loads your file56

CodeWhat it meansKindWhere you see it
ASSET_NOT_BUNDLEDA declared asset was not provided with the source.CompileThe editor
BAD_ASSETA declared asset path or file is refused.CompileThe editor
BAD_ATTRIBUTEsymbols, direction, order_mode or warmup has a value Forge does not accept.CompileThe editor
BAD_BARSThe bars declaration is invalid.CompileThe editor
BAD_CONSTRAINTA constraint is not a function of the settings that returns True or False.CompileThe editor
BAD_EXPORTSA library's __all__ is not a list of names the file defines.CompileThe editor
BAD_METAmeta or the class docstring is invalid.CompileThe editor
BAD_OBJECTIVEobjective names a way to rank results that Forge does not have, or custom without a score method.CompileThe editor
BAD_SCHEDULEA scheduled method is declared wrongly.CompileThe editor
BAD_SETTINGA setting declaration is invalid.CompileThe editor
CHART_ONLY_CALLA strategy uses fg.draw or fg.alert. Strategies draw through plots and ctx.plot.CompileThe editor
CLASS_CHECKEDThe strategy was loaded from a class, so the checks that read the file have not run yet.CompileThe editor
CONSTRAINT_NEEDS_CODEA constraint is not a plain comparison of number settings, so only running the strategy checks it.CompileThe editor
DEFAULTS_REJECTEDThe default settings break a constraint.CompileThe editor
DEPRECATEDThe file uses a Forge name that is deprecated.CompileThe editor
DYNAMIC_SERIESA series is chosen in a way Forge cannot read before the run.CompileThe editor
FORGE_API_INVALIDFORGE_API is not a supported whole number, or is set more than once.CompileThe editor
FORGE_API_LATEFORGE_API comes after the first class or function.CompileThe editor
FORGE_API_MISSINGThe file has no FORGE_API line.CompileThe editor
FORGE_API_OLDThe file's FORGE_API level has a newer one after it and has a date after which it is retired.CompileThe editor
FORGE_API_RETIREDThe file's FORGE_API level is retired. Saved versions still open and run.CompileThe editor
FORGE_API_RETIRED_SAVEA new version cannot be saved at a retired FORGE_API level.CompileThe editor
HOOK_NAME_CLOSEA method name is close to a hook name, so Forge never calls it.CompileThe editor
HOOK_RETURNA hook's return annotation does not match what Forge expects.CompileThe editor
HOOK_SIGNATUREA hook takes the wrong arguments, or is not a plain method.CompileThe editor
IMPURE_COMPUTEcompute() reads the clock or uses randomness.CompileThe editor
INTERNAL_IMPORTThe file imports btpro. Developer code imports forge only.CompileThe editor
LATER_HOOKThe hook is not available at this FORGE_API level.CompileThe editor
LINT_CENTRED_WINDOWA centred window reads bars after the one it is placed on.CompileThe editor
LINT_FIT_FULL_HISTORYA model is fitted on the whole history inside compute(), so early bars learn from later ones.CompileThe editor
LINT_LAST_ROW_IN_COMPUTECode in compute() reads the last bar of the whole history.CompileThe editor
LINT_MODE_BRANCHThe code depends on the run mode, so a backtest and a live run can trade differently.CompileThe editor
LINT_MODULE_STATEA module-level name is changed by strategy code, so results depend on what ran before.CompileThe editor
LINT_NEGATIVE_SHIFTA negative shift moves a later bar's value onto an earlier bar.CompileThe editor
LINT_REVERSED_SERIESA series is reversed before a running calculation, so early bars read later ones.CompileThe editor
LINT_UNSEEDED_RANDOMA random source is not seeded, so two runs of the same file differ.CompileThe editor
LINT_WHOLE_SERIES_AGGREGATEA calculation in compute() uses every bar, including later ones.CompileThe editor
LOAD_FAILEDRunning the top level of the file raised an error.CompileThe editor
MANY_PROGRAMSThe file defines more than one strategy class, or more than one indicator class.CompileThe editor
MIXED_PROGRAMThe file defines both a strategy and an indicator.CompileThe editor
NAMINGA class or function name does not follow Forge's naming style.CompileThe editor
NO_PROGRAMThe file defines no strategy class and no library names in __all__.CompileThe editor
PROP_AUTOMATION_BANNEDThe firm behind the chosen rule preset does not allow automated trading.CompileThe editor
PROP_PRESET_UNKNOWNThe rule preset the file names is not one Forge has.CompileThe editor
PROP_RULES_OLDThe rule preset was last checked a while ago, and the firm may have changed its rules.CompileThe editor
RANGE_MERGEDA whole-number setting on a log scale gives fewer values than its step implies.CompileThe editor
RANGE_WITHOUT_STEPA number setting has min and max but no step or values, so a sweep keeps it at its default.CompileThe editor
REMOVED_NAMEThe file uses a Forge name that was removed at its FORGE_API level.CompileThe editor
RESERVED_OVERRIDEThe strategy replaces a method Forge relies on, such as __init__.CompileThe editor
RUN_SETTING_IN_CODEA class attribute is named like a run setting, which the Tester sets for each run.CompileThe editor
SYNTAX_ERRORThe file is not valid Python, or not UTF-8 text.CompileThe editor
UNDECLARED_SYMBOLThe strategy reads a symbol it does not list in symbols.CompileThe editor
UNGROUPED_AND_ORAn expression mixes & and | without brackets.CompileThe editor
UNKNOWN_HOOKA method whose name starts with on_ is not a Forge hook.CompileThe editor
UNSAFE_LOADThe file reads data in a way that can run code hidden in it, such as pickle.CompileThe editor
WRONG_KINDThe file is an indicator where a strategy or a library was expected.CompileThe editor

Before a test starts14

CodeWhat it meansKindWhere you see it
CAL_COVERAGE_SHORTThe news calendar does not cover the run's full date range.DataRuns
CAL_NO_TZThe news calendar has no time zone Forge can resolve.DataRuns
CAL_UNKNOWNThe news calendar the run points to is not on file.DataRuns
CLOCK_DISAGREEThe run's instruments were measured on broker clocks too far apart for one offset.DataRuns
CLOCK_INDETERMINATEForge cannot work out the broker's time offset for any instrument in the run.DataRuns
CONV_SIDE_UNAVAILABLEForge has no exchange rate to convert an instrument into the account currency.DataRuns
EM_FIELD_INVALIDA value in the run's execution settings is not one Forge recognises.RuntimeRuns
EM_LEAF_UNSUPPORTEDAn execution setting is not available yet on either engine.RuntimeRuns
EM_VERSION_AHEADThe run's execution settings are newer than this engine can read.RuntimeRuns
KERNEL_V2_DONCHIANA Donchian edge cannot run on the engine the execution settings select.RuntimeRuns
PROFILE_FIELD_ABSENTThe selected broker profile lacks a figure the run needs.DataRuns
QUOTES_PARTIALBuy and sell prices cover only part of the run's date range.DataRuns
RULE_PROFILE_INVALIDThe rules profile attached to the run failed its own checks.RuntimeRuns
SEED_REQUIREDRandom slippage is on without a fixed seed, so the result could not be repeated.RuntimeRuns

Tests, strategies and your allowance49

CodeWhat it meansKindWhere you see it
batch_cap_exceededOne request already stored the most runs a single request may store.LimitRuns
broker_profile_requiredStop and target distances are in points, and no broker profile says what a point is.DataRuns
combo_cap_exceededThe run asks for more combinations than one run may test.LimitRuns
credits_exhaustedThe run stopped because the account ran out of credits while it was running.AllowanceRuns
daily_run_limitAn account on the free allowance can start only so many runs in one UTC day.AllowanceRuns
devcode_import_cooldownYour code timed out while loading three times in a row, so runs that use it are paused.RuntimeRuns, The editor
forge_code_cooldownRuns that use your own code are paused for a while after repeated resource or rule breaches.RuntimeRuns, The editor
forge_compute_suspendedForge compute is suspended on the account after repeated runs broke the usage rules.AccessRuns
gate_offForge cloud is switched off at the platform level, for every account.AccessRuns, Strategies, Custom indicators
insufficient_creditsThere are not enough credits to hold what this run or upload needs.AllowanceRuns, Data uploads
listing_platform_account_missingForge could not start the test of a published strategy.Runtime
listing_platform_strategy_limitForge has no room to take on another strategy for testing.Runtime
listing_setup_data_missingForge does not hold the licensed market data the test of this strategy needs.Data
listing_setup_invalidThe standard setup for the strategy's market is missing or cannot be run.Runtime
listing_verdict_budget_reachedForge has run as many strategy tests as it runs in one day.Allowance
listing_version_not_runnableThe published version of the strategy cannot be tested.Publish
max_agentsYour account already has the most paired machines it may.Allowance
no_combos_producedThe settings produce no combinations to test, so nothing ran.RuntimeRuns
not_leasedThe run is not currently held by the machine that reported on it.RuntimeRuns
pair_failedThe pairing code is wrong, has expired or was already used.Access
payload_too_largeThe request body is larger than the route accepts.LimitRuns, Strategies, Data uploads, Custom indicators, Charts
preset_limitYou already have the most saved setups your account may hold.AllowanceStrategies
preset_name_takenA saved setup already has this name.PublishStrategies
preset_not_foundThat saved setup does not exist or is not yours.AccessStrategies
published_cap_exceededYour account already stores the most published runs it may.Publish
quota_exhaustedAn account allowance is full: custom indicators, their versions, or unfinished indicator chats.AllowanceCustom indicators
spend_cap_raise_firstResuming paused runs needs a higher cap first, because the month's spending is already at it.Allowance
spend_cap_reachedThis run does not fit under your monthly spending cap.AllowanceRuns
strategy_check_bad_formatA check's report is exported as json or csv, and the request named another format.CompileStrategies
strategy_check_code_onlyChecks run on code versions, and this version is a Studio version.CompileStrategies
strategy_check_not_finishedThe check is still running, so its report cannot be exported yet.RuntimeStrategies
strategy_check_not_foundThat check does not exist for this version.AccessStrategies
strategy_check_not_readyThe version has not passed its file check yet, so the full check cannot start.CompileStrategies
strategy_conflictThe strategy was changed somewhere else after the copy your save was based on.PublishStrategies
strategy_limitYou already have the most active strategies your account may hold.AllowanceStrategies
strategy_not_checkedThat version of a code strategy has not passed its check yet.CompileRuns, The editor
strategy_not_declarativeThe strategy uses code the Studio has no block for.CompileStrategies, The editor
strategy_not_foundThat strategy does not exist, is archived, or is not yours.AccessStrategies, Runs
strategy_revision_not_foundThe strategy has no version with that number.AccessRuns
strategy_spec_invalidThe Strategy Spec does not follow its schema.CompileStrategies
strategy_spec_legacyThe Strategy Spec has no forge_api, so it is in the older Studio format.CompileStrategies
strategy_spec_level_unsupportedThe Strategy Spec was saved for a FORGE_API level this version of Forge does not run.CompileStrategies
strategy_to_spec_busyReading the code for the Studio took too long, or the service that reads it was busy.RuntimeStrategies, The editor
strategy_version_limitThe strategy already holds the most saved versions one strategy may have.AllowanceStrategies
strategy_version_not_codeOnly a code version that passed its check can be opened in the Studio.CompileStrategies, The editor
strategy_version_not_foundThat saved version does not exist, or the strategy is not yours.AccessStrategies
tier_requiredThe route you called belongs to a feature that is part of the Paid plan.Access
too_many_queuedYou already have the most runs waiting or running at one time.AllowanceRuns
unknown_agentThe machine is not paired with your account, or its pairing was revoked.Access

Price data and uploads20

CodeWhat it meansKindWhere you see it
broker_profile_invalidThe broker profile saved with the run could not be read.DataRuns
conversion_pair_missingA currency-conversion dataset for your account currency is missing.DataRuns
dataset_bad_symbolThe symbol is not 2 to 20 capital letters and digits.DataData uploads
dataset_empty_fileThe dataset record declares a size of zero bytes.DataData uploads
dataset_existsYou already have data for this symbol.DataData uploads
dataset_in_useA queued or running run uses this dataset, so it cannot be deleted yet.DataData uploads
dataset_ingestingThe dataset is still being processed, so it cannot be deleted yet.DataData uploads
dataset_not_readyA symbol the run names has no dataset that is ready.DataRuns, Data uploads
dataset_too_largeThe plan for sending the file in parts is outside what is accepted.LimitData uploads
digest_mismatchThe uploaded parts do not add up to the checksum expected for the whole file.DataData uploads
forge_upstream_unconfiguredUploads are not available because the upload service is not set up.DataData uploads
ingest_dispatch_uncertainProcessing has very likely started, but Forge lost the confirmation.DataData uploads
ingest_scratch_insufficientThe file is larger than the processing service can hold while it works on it.LimitData uploads
part_digest_mismatchA part of the upload does not match the checksum sent with it.DataData uploads
part_plan_inconsistentThe number of parts does not match the file size and the part size.DataData uploads
parts_missingSome parts of the upload have not been received.DataData uploads
parts_unavailableStorage did not answer in time.DataData uploads
storage_frozenYour storage is frozen until the storage balance is paid.AllowanceData uploads
storage_quota_exceededThe file does not fit in the storage your plan includes.AllowanceData uploads
ticket_budget_exhaustedThe upload link has been used for as many requests as it allows.LimitData uploads

Custom indicators18

CodeWhat it meansKindWhere you see it
custom_indicator_not_availableA custom indicator in the run does not exist, is not yours, or has not passed its checks.AccessRuns
custom_indicators_not_publishableA run cannot be published because a custom indicator it used is no longer available.Publish
description_too_shortThe description is too short to build an indicator from.DataCustom indicators
duplicate_indicator_nameYou already have an indicator with that name.PublishCustom indicators
duplicate_indicator_versionsThe run names two versions of the same custom indicator.DataRuns
expert_advisor_not_supportedThe file places trades, so it is an Expert Advisor and not an indicator.CompileCustom indicators
file_too_largeThe file is larger than the limit for an indicator's source.LimitCustom indicators
indicator_deletedThe indicator was deleted, so its chat cannot continue.AccessCustom indicators
invalid_primary_outputThe indicator has several outputs and no main one.CompileCustom indicators
model_pricing_unconfiguredThe assistant is not fully set up, so the turn was not started.RuntimeCustom indicators
model_unavailableThe assistant's model could not be found, so the turn was not started.RuntimeCustom indicators
no_executor_availableNo machine is available to check or build indicators right now.RuntimeCustom indicators
rights_not_confirmedA conversion needs your confirmation that you own the code or may convert it.AccessCustom indicators
source_too_large_for_modelThe conversation and source are too long for the assistant to read in one turn.LimitCustom indicators
state_conflictThe chat moved on, or is not ready for that action.PublishCustom indicators
too_many_filesThe source bundle already holds the most files it may.LimitCustom indicators
unresolved_translationSome parts of the source could not be translated, and each needs your decision.CompileCustom indicators
unsupported_fileThe file is not a kind that can be converted.CompileCustom indicators

The code sandbox15

CodeWhat it meansKindWhere you see it
bad_requestThe request is not valid: a field is missing, malformed, or over a size the service accepts.RuntimeThe editor, Charts
cap_cpuThe script used more CPU time than allowed.LimitThe editor, Charts, Runs
cap_diskThe script wrote more scratch data than allowed.LimitRuns
cap_drawingsThe script produced more drawings than allowed.LimitThe editor, Charts, Runs
cap_idleThe script stopped making progress, so it was ended.LimitRuns
cap_importThe script took too long to load.LimitRuns
cap_memoryThe script used more memory than allowed.LimitThe editor, Charts, Runs
cap_outputsThe script produced more output than allowed.LimitThe editor, Charts, Runs
cap_processesThe script started more processes than allowed.LimitRuns
cap_wallThe script ran longer than allowed.LimitThe editor, Charts, Runs
forbidden_callThe script made a call the sandbox does not allow.CompileThe editor, Charts, Runs
forge_api_unsupportedThe script targets a Forge API level this engine does not support.CompileThe editor, Charts, Runs
internalSomething went wrong on Forge's side, not in your code or your request.RuntimeThe editor, Charts, Runs
sandbox_unavailableThe code sandbox is not available right now. Try again in a few minutes.RuntimeThe editor, Charts, Runs
user_exceptionThe script raised an error.RuntimeThe editor, Charts, Runs

When Forge refuses a request33

CodeWhat it meansKindWhere you see it
ACCOUNT_PENDING_DELETIONThe account is scheduled for deletion.Access
MFA_REQUIREDThe session needs two-step verification before it can use this route.Access
account_on_holdForge is paused on the account.AccessRuns, The editor
agent_upgrade_requiredThe machine that took the run is older than the run needs.RuntimeRuns
auth_unavailableSign-in could not be checked right now.Access
code_on_holdRunning your own code is paused on the account. Built-in strategies still run.AccessRuns, The editor
code_pausedRunning developer code is paused on Forge for everyone. Built-in strategies still run.RuntimeRuns, The editor
code_status_unavailableForge could not confirm that your code may run, so it did not start it.RuntimeRuns, The editor
combo_axis_over_budgetOne setting in the run has too many values to test.LimitRuns
custom_indicator_unavailableA custom indicator the run uses could not be installed on the machine.RuntimeRuns
data_load_failedThe machine could not load the data the run needs.DataRuns
dataset_quality_rejectedA dataset the run needs failed the data-quality check.DataRuns
dispatch_unavailableNo machine could be started for the run.RuntimeRuns
forge_pausedTesting is paused for maintenance.RuntimeRuns
idempotency_key_requiredStarting a run needs an Idempotency-Key header.Data
idempotency_key_reusedThe Idempotency-Key was already used for a different request.Data
max_claims_exhaustedThe run was restarted too many times and was stopped.RuntimeRuns
middleware_orderA fault on Forge's side: a check ran before the sign-in check.Runtime
not_foundThere is nothing at the address.Data
queue_ttl_expiredThe run waited in the queue too long and was not started.RuntimeRuns
rate_limitedToo many requests came from this account or address in a short time.Limit
request_failedThe request was refused, with no more specific reason.Runtime
request_timeoutThe request took longer than the service allows to answer.Runtime
run_already_finishedThe run has finished, so it cannot be stopped.Data
run_failedThe run stopped with an error that has no more specific code.RuntimeRuns
run_not_foundNo run with that id exists, or it is not yours.Access
service_unavailableThe service is busy and could not take the request.Runtime
strategy_needs_hostedThe run uses your own code, which runs only on Oathra's cloud runner.RuntimeRuns
strategy_source_unavailableThe saved strategy version the run names can no longer be read.RuntimeRuns
token_expiredThe access token has expired.Access
token_invalidThe access token is not valid.Access
token_requiredThe request has no access token.Access
unexpected_errorThe machine hit an error it was not written to expect.RuntimeRuns