[BUG] Silent UI failure and unnecessary upstream symbol lookup on activity creation
Author: frekeCreated Sep 11, 2026Updated Sep 15, 2026
Description
When creating a new activity with a symbol that already exists in the local "Market Data" database, the backend returns a 400 Bad Request if the upstream provider (Yahoo Finance) fails to resolve the symbol. The UI handles this error silently without notifying the user, and the activity fails to be created.
This issue highlights two underlying bugs:
- UI Bug: The UI silently ignores the error response from
/api/v1/activitiesinstead of presenting an error message to the user. - Logic Bug: When creating an activity for a symbol that is already known and saved in local "Market Data", the system should not need a mandatory blocking upstream lookup with Yahoo Finance (which is susceptible to rate limits or temporary outages etc.).
Steps to Reproduce
- Ensure a symbol (e.g.,
XXXXXXXXXX.ST) is already created and present under Market Data. - Simulate or wait for an upstream resolution failure with Yahoo Finance (e.g., rate limiting / quota restriction).
- Navigate to create a new Activity using the symbol (
XXXXXXXXXX.ST). - Fill in the remaining fields and submit the form.
- Observe that the form closes or fails without displaying any warning or error in the UI.
Expected Behavior
- UI: An explicit error notification should be rendered when the API fails.
- Backend/Logic: Adding an activity for an existing symbol in Market Data should utilize local database records rather than requiring a real-time upstream validation call to Yahoo Finance.
Actual Behavior
The activity is not added, no user-facing error message appears in the UI, and browser developer tool logs reveal a 400 Bad Request response from POST /api/v1/activities:
{
"message": [
"activity.symbol (\"XXXXXXXXXX.ST\") cannot be resolved by the data source (\"YAHOO\")"
]
}Environment
- Ghostfolio Version 3.69.0
- Self-hosted
- Experimental Features enabled
- Zen
- Linux
Source: ghostfolio/ghostfolio