<!-- Public documentation export; not library implementation source. -->
# Troubleshooting and support

Start with your browser's console and Network panel. First work out where things went wrong: the host container, loading the runtime files, the datafeed, an indicator, or saving and loading.

| What you see | What to check | How to fix it |
| --- | --- | --- |
| Blank chart | Container height and runtime script requests | Give the parent a height, and fix `library_path` |
| HTML comes back instead of JS | Your static host's fallback page | Serve the right file and MIME type, or a real 404 |
| Chart never becomes ready | Script errors, CSP, missing iframe files | Fix the resource that's failing, then retry from a clean start |
| Chart is ready but has no candles | `resolveSymbol` and `getBars` callbacks | Make sure every request ends in success or error, and check time units |
| Bars show up in 1970 or far in the future | Seconds mixed up with milliseconds | Convert at the documented point in your datafeed |
| Duplicate bars | Timestamp order and realtime update rules | Return unique, ascending history, and only update the latest bar in realtime |
| Too few bars | `countBack`, sessions and provider paging | Fetch earlier history, or report that there's genuinely no more |
| Old symbol shows up after switching | Late responses from earlier requests | Ignore responses from older requests, and unsubscribe |
| No Save/Load controls | Incomplete adapter | Implement all four layout methods |
| Saved layout is rejected | Schema or provider mismatch | Load a supported schema that matches, and keep the current chart as it is |
| Pine isn't available | Feature flag and worker/editor files | Ship the matching optional files and turn on the configuration |
| Chart keeps running after navigation | Your timers and subscriptions | Remove the widget and everything your code started |

## Try it with sample data

Open the [demo](https://docs.lumencharts.com/demo/). If the sample works but your provider doesn't, compare your symbol metadata, timestamps and callback order with the sample. If both fail, look at the runtime file requests and the browser environment.

## Glossary

| Term | Meaning |
| --- | --- |
| Widget | The chart container your app creates, and its public API |
| Chart | One chart inside a widget or layout |
| Datafeed | The callbacks your app provides for symbols and market data |
| Bar | One OHLCV data point, with a timestamp in epoch milliseconds |
| Resolution | How much time one bar covers, such as `15` or `1D` |
| Pane | One of the stacked plot areas in a chart, holding series or indicators |
| Study | An indicator or calculation added to a chart |
| Drawing | An interactive analysis shape with its own source ID |
| Layout | A saved chart or workspace setup |
| Template | A reusable set of style or indicator settings |
| Manifest | The list of runtime files and their cryptographic hashes |
| Runtime build ID | The start of this release manifest's hash |
| Capability | A feature that's fully set up and supported end to end |
| Provider | Code in your app that supplies data or external services |

## Integration support

Use the support channel that came with your chart distribution. These docs don't assume you can see the source repository or any internal issue tracker.

### Make the problem easy to reproduce

Note the runtime manifest ID from [releases](https://docs.lumencharts.com/charting-library/reference/releases), your browser and its version, your app's base path, and the smallest set of steps that shows the problem. Where you can, swap real market or account data for a small set of sample data.

Describe what you expected and what actually happened. Include console and network errors with sensitive details removed. Let us know whether the [interactive demo](https://docs.lumencharts.com/demo/) shows the same issue.

### Before you share

Remove API keys, session tokens, account IDs and private scripts. Keep the relevant symbol metadata and timestamps so the datafeed calls can be checked. Screenshots help, but they can't replace a sequence of callbacks that reproduces the problem.

---
Documentation page: https://docs.lumencharts.com/charting-library/reference/troubleshooting
