Skip to content

[BUG] stock-price-chart widget crashes: Alpha Vantage TIME_SERIES_INTRADAY is now a premium endpoint #2351

Description

@bingoofsweden

Environment

Self-Hosted (Docker)

System

Chrome 153

Version

Dashy version 4.7.0

Describe the problem

[BUG] stock-price-chart widget crashes: Alpha Vantage TIME_SERIES_INTRADAY is now a premium endpoint

Environment

  • Dashy version: 4.7.0 (Proxmox LXC, community-scripts install, Debian 13)
  • Browser: Brave (Chromium)

Config

  • type: stock-price-chart
    options:
    stock: GME
    apiKey:

Describe the problem
The widget always shows "Unable to fetch stock price data". Browser console:
TypeError: Cannot convert undefined or null to object

Root cause

  1. The widget calls:
    function=TIME_SERIES_INTRADAY&symbol=GME&interval=30min&apikey=...
    With a free API key, Alpha Vantage now returns:
    {"Information": "Thank you for using Alpha Vantage! This is a premium endpoint..."}
  2. The widget only checks for data['Error Message'], so the Information
    response is not caught. processData() then reads
    data['Time Series (30min)'], which is undefined, and
    Object.keys(undefined) throws.

Verification

  • Same key works fine with function=TIME_SERIES_DAILY (returns
    Time Series (Daily) with normal OHLCV data).
  • TIME_SERIES_INTRADAY and TIME_SERIES_DAILY_ADJUSTED both return the
    premium Information message with a free key.

Suggested fix

  1. Switch the default endpoint to TIME_SERIES_DAILY (free tier) and read
    Time Series (Daily), or make the function/interval configurable.
  2. Treat data.Information and data.Note as errors (Alpha Vantage uses
    these for premium/rate-limit responses), and show that message to the
    user instead of a generic crash.
  3. Update the docs, which currently state the widget works on the free plan.

Additional info

The maintainer noted in the 4.0.0 release that several widgets are outdated due to upstream API changes; this appears to be one of them. Alpha Vantage has repeatedly moved endpoints between free and premium tiers, so making the function configurable (or defaulting to TIME_SERIES_DAILY) and handling the Information/Note response fields would make the widget more robust against future changes.

Workaround for other users: the TradingView "Market Quotes" embed widget, served from user-data and loaded via an iframe widget, works without an API key.

Please tick the boxes

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

✅ Fixed[ISSUE] Auto-Assigned to Tickets whose fix has been deployed🐛 Bug[ISSUE] Ticket describing something that isn't working🛩️ Released 4.7.4Included in release v4.7.4

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions