Overview
Find what you see in the left column. The cause and the fix are in the same row; the link is only for more depth.
Most chart symptoms show as an icon on the indicator's row in the chart legend. Hover it: the tooltip names the problem in the words used below. A red icon means the script stopped, amber means it ran with a problem, grey means information.
Indicators on the chart
You see | Likely cause | Fix |
|---|---|---|
script error on the row, red | The script threw on a bar. The tooltip gives the message and the bar time. | Open the indicator, fix the line the message names, and save. Add |
stopped, with "to keep the chart responsive" | The script hit a processing budget, such as too many loop iterations or more than 5 seconds in one call. The tooltip ends with the remedy. | Do what the remedy says: fewer loop steps per bar, less history, or fewer outputs. Budget exceeded |
still processing | One calculation has taken more than 2 seconds. | Wait. If it happens every time, do less per bar or declare less history. |
code loading or code not loaded | The script has not reached the chart's worker. | Wait a few seconds. If it stays, reopen the indicator. |
loading history | The script declared higher-timeframe history and runs once it lands. The tooltip shows how many buckets have arrived, e.g. | Wait. |
history not loaded or data unavailable | Nothing is fetching the data the script needs. | Reload the chart. |
no data | The data does not exist for this symbol, timeframe and range. | Pick another symbol or timeframe. |
too many indicators for your plan | The chart runs as many indicators as your plan allows, counting the ones an indicator brings with it. | Remove an indicator from this chart, or upgrade. |
reads too many timeframes | The indicator reads more timeframes than your plan allows. | Reduce the timeframes in its settings, or upgrade. |
"This chart is on 1d. Switch to 5m, 15m to preview it." | The script's | Switch the chart timeframe, or change |
"This indicator is hidden on this timeframe." | Its settings hide it on this timeframe. | Change the timeframe or the setting. |
"Volume-at-price data is not available for …" | The script reads the volume tape and this asset class has none. FX, index and commodity CFDs carry no tape. | Use a crypto instrument, such as BTC. |
dependency output empty, amber, or a blank plot that reads another indicator | A declared dependency produced no values for the output the script read. | Check the dependency's output key, version and settings. Guard |
no shapes to draw | The script ran and drew nothing. Its condition never fired, or every bar was still in the warmup. | Check the settings and the condition. Log the values the condition tests. |
nothing in this view | It has drawn things, just not in the visible range. | Zoom out or scroll. |
drew nothing | Its rows are in view and paint put nothing on screen. | Fix the layer's |
no price scale on its pane | A chart fault, not a script fault. | Reload the chart. |
Blank, no icon, and the lint is clean | A wrong-typed value reaches the chart as | Read the editor's type errors. Use the paint call that matches each |
Drawn on the price pane instead of its own pane |
| Pass the pane handle to each output. Panes and scales |
A layer is paused, "frame budget exceeded" | Paint took more than 4 ms for three frames running. | Draw at most one shape per pixel row: merge bins under 1 px, or move to |
Values change on refresh, or differ between two charts | The script keeps state but its warmup is too short, so values depend on where the chart's data starts. | Call |
History capped | The script asked for more history than your plan's indicator memory. | Read a higher timeframe, or use |
History limited by your plan | Your plan's history window ends here, so an "all-time" high is a high since that date. | Upgrade for more history, or label the value "since <date>". |
History starts at this instrument's first bar | There is no older data. | Nothing to fix. |
Not enough volume history | The volume tape starts too late for the declared warmup. | Lower the warmup, or use a higher timeframe. |
A | This copy runs an older version of the script. | Expected when you or a dependent pinned it. Newer versions do not reach it until the pin moves. |
Definitions
You see | Likely cause | Fix |
|---|---|---|
Nothing marked on the chart | The definition is not | Set |
Zero events after running over history | Emits were dropped ( | Read the drop reason first. Declare the event id, add the label, or widen the range. Emit not collected |
Fewer events than expected |
| Remove |
Events on the chart but not in history | The history run covers a different version, profile, timeframe or range. | Run the definition over history again for the version and profile you are looking at. Run a definition over history |
Run over history refused with | The timeframe is not in the definition's | Pick a timeframe from |
Coverage says the range is covered, the study still finds nothing | Coverage is kept per version and per profile. Saving the definition made a new version, which has no events yet. | Run the new version over history, or pin the study to the version that has events. Versions and profiles |
Profile marked Needs setup or Needs configuration | A code change left the profile without values for new settings. It cannot run over history until they are set. | Fill in the missing settings on the profile. |
Volume-based definition refused for an instrument | The instrument has no volume tape. | Pick a crypto instrument, such as BTC. No range or timeframe fixes it. |
| Both were removed. | Declare |
Nothing paints from a timeframe handler | Paint and emit calls are refused inside | Keep the value in the handler's state and paint from the chart |
"module is not defined", or an import error | CommonJS or a package import. | Use |
No data around 21:00 UTC on BTC | BTC halts daily from about 20:55 to 21:05 UTC. | Try again after the halt. |
Studies
You see | Likely cause | Fix |
|---|---|---|
"no flow events for this instrument/timeframe in the selected window" | The study is pinned to a definition version with no events in that window, often one version behind the one you ran over history. | Read the rest of the message: it names the pinned version. Update |
Study finished with no rows | Every event threw (check the errored-event count first), the filters in | Fix the first reported error. Compare against the alias you gave |
Rows collected, results empty |
| Log the collected rows in |
A baseline reads 0 while the main series is fine |
| Measure in |
Multi-day study collects nothing |
| Use |
A later event is never found |
| Drop |
Results from before your edit | The run belongs to an older study version. | Run the study again. |
| The run passed 10 minutes, or events took more than 15 seconds each. | Use a shorter range and do less per event. Budget exceeded |
| A definition run the study waited on did not finish. | Retry the run over history, then the study. |
Forward Insights
These are the states of the popover that opens when you click an event on the chart.
You see | Likely cause | Fix |
|---|---|---|
No study pin on this chart yet | No study for this definition is attached to the chart. | Open Go to Studies, run a study, and use Attach to chart. Forward Insights on the chart |
Not set up for this profile | The Forward Insight was saved under a different profile from the one the chart's definition uses. | Use the Switch to button in the popover, or save a Forward Insight from a study run on this profile. |
Can't use this pin on 5m | The Forward Insight was saved for another timeframe. | Switch the chart to the timeframe it names, pick another Forward Insight, or save one for this timeframe. |
No study insight for this event | The study leaves events like this one out: its | Return a tuple from |
This insight can be wrong on live events | The study has no | Click Update. The study builder's agent moves the grouping into |
Need more chart history | The study needs more bars or indicator data to evaluate this event. | Scroll back or wait for data, then click again. |
Could not check cohort with "missing frozen study source" | The Forward Insight was saved before its source was stored. | Save a new Forward Insight from the study run. |
Could not check cohort with "Study script is not loaded" | The study code has not loaded in this session. | Open the study in the builder once, then click again. |
Could not load pin results | The popover layout matched nothing for this event. | Check that the study's |
Popover shows 100% for one outcome everywhere | An outcome was declared as a scope dimension. | Declare outcomes with |
Save pin fails, or "needs study updates before it can be saved" | The study does not publish what the design needs. |
Saving and lint
You see | Likely cause | Fix |
|---|---|---|
A rule id such as | A lint rule failed. Errors block the save; warnings do not. | Look up the id in Lint and error codes. |
| Every indicator needs a settings dialog. | Add |
| A timeframe comes from | Use |
The same lint errors come back after the Agent fixed them | The draft and the saved version disagree. | Save the draft and run it again. |
The Agent proposed code that fails | Its proposal failed lint or a dry run. | Reject it with the error text so it can fix it. Agent lint and dry-run |
From the CLI or API
Scripts you run with the CLI or the API run on Chartnaut's servers, the same way a definition runs over history. The run's failure.kind and the CLI's exit code tell you which row to read. Errors and exit codes
You see | Likely cause | Fix |
|---|---|---|
Exit code 3, | Your account is on Free, which has no CLI or API access. | Upgrade to Starter or above. |
Exit code 3, | The API key is missing the scope that command needs. | Make a key with that scope under Developers. API keys |
Exit code 1, with | The script failed validation. The lines are the same lint you get on save in the app. | Fix every |
Exit code 2, | Your code threw on a bar or an event. | Read |
| There is no data for that instrument, timeframe and range, or it has not landed yet. | Pick another range or instrument. For |
Exit code 5, | Your runs at once are in use. The app and the CLI share one pool per account. | Wait, then run again. Limits |
A blank output from a script that reads another indicator, and a | The dependency is a built-in that only runs in the chart's browser, so it reads empty on the server. | Depend on a scripted indicator instead, or run the script in the app. |
| The definition ran and its condition never fired on that range. | Log the values the condition tests, or widen the range. |
| The data has a gap longer than your | Declare a |
A study finds no events from a definition you ran with |
| Run it over history with |
The app still shows the old code after a run |
|
|
| Someone saved the script in the app since your last push or pull. |
|
Questions that are not symptoms are in the FAQ.
