Troubleshooting
Find the cause of an error and prepare a useful support report.
EngineHost or compilation unavailable
The guide and editor can open without EngineHost. Trading operations require a compatible engine. Inspect the XTester output channel for the exact startup or protocol error.
Check the xtester.engineHostPath setting and confirm that it points to your intended EngineHost executable. Verify that a folder containing xtester.strategy.json is open before compiling or running.
Record the XTester Studio, editor core, and EngineHost versions separately when diagnosing compatibility problems.
Missing data or download failures
Confirm the provider, market, symbol, and real history coverage. Verify network access to the selected data source, then retry a small interval. A no-response timeout means the requests did not receive an answer; it does not prove that the symbol was delisted. A dataset already being downloaded is held by another download: wait for it to finish or cancel it before retrying. Avoid repeatedly starting the same request while it is already queued.
If the engine reports a busy state, finish or cancel the current operation and wait for its final status. Preserve the exact engine error message and relevant logs.
Settings were not saved
XTester Studio and the desktop XTester keep their settings in one file, app.config, with a backup copy, app.config.bak, in the XTester user data folder (on Windows, %LOCALAPPDATA%\XTester\UserData). When the engine cannot read part of app.config, it refuses to save settings, and Studio shows «Settings were not saved: part of app.config could not be read (…)» instead of confirming the change.
- Close every other XTester build that may be running, including the desktop XTester and other XTester Studio windows.
- Restart XTester Studio and repeat the change.
- If the message appears again, keep copies of app.config and app.config.bak from the XTester user data folder and report the problem with the group names from the message. Do not delete or edit these files: they may hold the only copy of the settings that could not be read.
The names in parentheses are the settings groups that could not be read, for example llmProviders for AI providers or accounts for exchange accounts. This happens when a newer XTester build wrote the file and stored a group in a form this build cannot read. A field an older build did not have is not a cause: it is simply absent from the file, and this build keeps its own default for it.
If the parentheses name app.config itself, another program (an antivirus scan, a backup or sync client) kept the file locked for more than about two seconds while settings were being read or saved: wait a moment and make the change again. If such a lock made XTester load its settings from app.config.bak, the first change after the file is free again can be refused once more, while the settings are reloaded from app.config.
Nothing on disk was overwritten. Saving over a group the engine cannot read would replace your data with empty defaults, so app.config and app.config.bak stay exactly as they were. The change you just made was not saved: make it again once the cause is resolved.
Settings written by a newer build
Known limitation: when an older XTester build saves app.config, it drops the fields it does not know, even if a newer build wrote them.
For example, if an older desktop XTester saves its settings after XTester Studio, the AI provider settings it does not know are lost: a provider you hid in Studio shows again, and changes to whether a provider requires an API key, whether its endpoint is local, or which capabilities it has return to their defaults. They do not come back by themselves: set them again.
Another example is the mark on the AI provider entry that holds your xAI Grok subscription sign-in: while it is lost, the engine treats that entry as an ordinary xAI entry with an API key. This mark does come back: XTester Studio sets it again the next time it hands the sign-in token to the engine, at a token refresh or a new sign-in. The rest of the settings is kept.
Help: Context, Search and Full Articles
The question-mark button in a panel heading opens help for that surface. In Settings, the help button follows the selected section, such as Performance.
- Open the relevant surface and choose its question-mark button.
- Check the article heading and contextual section.
- For another question, open Search Help and choose a result.
- Open the full article in the application or browser when needed.
Help opens in a separate window, leaving the original form and its unsaved input open. Full Article shows the entire topic; Full article in browser opens the same published material on the website.
Choose Search Help, enter a setting, action or error message and wait for results. Search covers the entire guide, rather than only the current article. Choosing a result opens it in this window.
If no answer is found, use Prepare a useful problem report and include the application version and exact message. Ctrl+F1 (⌘F1 on Mac) also opens contextual help; F1 opens the Command Palette.
Prepare a useful problem report
Record the app versions, operating system, steps to reproduce, expected behavior, actual behavior, and the relevant error text. Remove credentials, private strategies, account identifiers, and other sensitive data before sharing logs.
A public support destination has not been configured for this distribution. The development repository may be private. Use the support channel provided with your installation; this guide does not send reports or open an unverified website.
View License in the Help menu opens the bundled license locally. Third-party components retain their own licenses and attribution.
Related commands
Command Palette reference
Find these actions by name in the Command Palette; availability depends on the current project and operation state.
xtester.startEngine