Periscøpe
Docs menu Troubleshooting

Troubleshooting

Short list of common failures and where to look first.

Grouped by what you were doing when the problem appeared. If none of these match, the Issues & Logs tab on the run itself is where specific failures surface with classified codes and log context.

Publishing a strategy

Publish failed with a validation error

The toast shows the exact problem. Common causes:

  • strategy.py or config_schema.json is empty. Add content and republish.
  • A helper filename does not match the allowed pattern ([a-zA-Z0-9_-][a-zA-Z0-9_.-]*\.py), or uses a reserved name (strategy.py, config_schema.json).
  • A single file exceeds 10 MB, or the bundle exceeds 50 MB, or you have more than 48 helper files.
  • config_schema.json is not valid JSON, not a JSON object, not a valid JSON Schema Draft 7, or uses a remote $ref (remote refs are rejected).

If you imported a schema or hand-edited config_schema.json, the validator can also reject:

  • A Symbol parameter has no asset type set, or uses an asset type other than the supported set (EQUITY, FUTURE). The form picker prevents this; seeing this error usually means the schema was hand-edited. (Raw-schema name: x-periscope-asset-type.)
  • A Bar Frequency parameter has no value pinned and no list of choices, or uses a value outside second, minute, hour, day.
  • Strategy code reads a parameter as a Symbol or Bar Frequency but the parameter isn't declared as that type. Open the parameter in the editor and switch its Type. If you did not edit raw JSON, this usually means the strategy code and the parameter form are out of sync.

Schema contains unsupported properties

The Strategy Parameters panel warns when your raw schema JSON uses types it can't render visually. You can still publish if you don't edit parameters in the visual panel; once you do, the unsupported properties get replaced. Keep an imported schema as is, or stick to the supported parameter types in the visual editor (the Type picker covers them all). Only edit the raw schema if you need shapes outside that set.

Creating or starting a run

Start button is disabled

Two reasons.

  • The config is still loading. Wait a moment, then try again.
  • The run has no config yet. Click Edit Config (or Create Config) on the Configuration tab and fill it in.

"Symbols don't match the strategy's asset type"

The Create Run dialog blocks submit when a Symbol parameter holds a ticker that doesn't resolve to the declared asset type. For example, entering SPY in a field declared as FUTURE. Fix the ticker to match the expected asset type, or open the strategy editor and change the field's declared asset type.

Couldn't reach the backend

The app shows a dedicated screen with a Retry button if the backend is unreachable at sign in time. This is usually transient. If it persists, contact support.

Observing a run

Run is in error status

The run detail opens on Issues & Logs. Start with the most recent Strategy issues; they are usually the cause. See Run Diagnostics for the full tree.

No issues, no trades

Check the Configuration tab for wrong symbols, timeframes, or time windows. Then expand Strategy logs on the diagnostics tab and skim for anything your strategy printed about why it did or did not enter.

Diagnostics temporarily unavailable

Shown when the diagnostics service is briefly unreachable. Refresh in a moment. If the placeholder persists, contact support.

No orders CSV to download

The Download Orders button surfaces an informational toast if the run has no EMS orders yet. Either the run has not placed orders, or it has not started. Try again after it runs.

AI assistant

Rate limited

The app toasts a retry delay. Wait the specified number of seconds, then send the request again.

Suggestions don't match the error

You likely have unsaved edits open in the editor while debugging a past run. The assistant banner warns about this on handoff. Save the current version (Publish) or revert before running a new debug pass.

Mode specific

Works in Backtest, fails in Paper

Conditions that can differ between modes include session boundaries, futures contract resolution, and order rejections under exchange rules. Compare the Paper run's logs with a Backtest run over the same recent window to isolate the cause.

Live mode is not available

Live is gated and disabled by default. Contact support to enable it.