EDMC saves journal folder as a *relative* path instead of an absolute path, causing plugins to read from the wrong directory
- Dominant language
- Python
- Stars
- 1.3k
- Forks
- 182
- Avg merge
- 1m
- Merged PRs (30d)
- 1
Description
## **Summary**
EDMC stored my Journal Folder setting as a **relative path**:
**Saved Games\Frontier Developments\Elite Dangerous**
Instead of the correct absolute path:
**C:\Users\\Saved Games\Frontier Developments\Elite Dangerous**
As a result, EDMC resolved the relative path against its own working directory (in my case `E:\Tools\EDMarketConnector`), which caused EDMC and all plugins to read from a **non-existent** journal directory. This led to missing journal events, missing Market.json, and plugin failures that were extremely difficult to diagnose.
There is no warning, no validation, and no fallback behavior when the configured path is invalid.
## **Environment**
- **OS:** Windows 11
- **EDMC Version:** 6.1.2+b7758a6
- **Install Location:** Custom folder (`E:\Tools\EDMarketConnector`)
- **Plugins:** Multiple, including a custom plugin that reads Market.json
## **Steps to Reproduce**
1. Open EDMC Settings → Journal Folder
2. Manually enter or accidentally save a **relative path**, e.g.:
**Saved Games\Frontier Developments\Elite Dangerous**
3. Launch EDMC from a directory other than the user profile (e.g. `E:\Tools\EDMarketConnector`)
4. EDMC resolves the relative path as:
**E:\Tools\EDMarketConnector\Saved Games\Frontier Developments\Elite Dangerous**
5. EDMC and plugins now see an **empty** journal directory
6. No journal files are read
7. No Market.json, Outfitting.json, Shipyard.json, or Cargo.json are found
8. Plugins silently fail to receive data
## **Expected Behavior**
- EDMC should **always store absolute paths** for the Journal Folder
- EDMC should **validate** that the folder exists and contains journal files
- EDMC should **warn the user** if the folder is empty or invalid
- EDMC should **not** silently accept a relative path
## **Actual Behavior**
- EDMC stores the path exactly as typed, even if it is relative
- EDMC does not normalize or validate the path
- EDMC does not warn the user when the folder is empty
- EDMC resolves the relative path against its own working directory
- Plugins receive no journal data and appear to malfunction
- The root cause is extremely non-obvious
## **Impact**
This issue causes:
- Missing journal events
- Missing Market.json / Outfitting.json / Shipyard.json
- Plugins failing to update inventory, cargo, and carrier data
- Silent data loss
- Difficult debugging for plugin developers
- Confusing behavior for end users
This is especially problematic for plugins that rely on Market.json, since EDMC does not expose the full commodity list in the Market event.
## **Proposed Fix**
1. When saving the Journal Folder path:
- Convert to an **absolute path**
- Validate that the folder exists
- Validate that it contains at least one `Journal.*.log` file
2. On startup:
- If the configured path is invalid or empty, show a warning
- Offer to reset to the default Saved Games location
3. In the Settings UI:
- Add a “Reset to Default” button
- Display the resolved absolute path
## **Additional Notes**
After manually correcting the Journal Folder to the absolute path:
**C:\Users\\Saved Games\Frontier Developments\Elite Dangerous**
EDMC and all plugins immediately began functioning correctly. This confirms the issue is not plugin-related, but a configuration handling bug in EDMC itself.
Contributor guide
Assessment
This issue has not been assessed yet.