MetricSign
EN|NLRequest Access
Critical severitydata pipeline

Power BI Refresh Error:
Stream Too Old / Stale Stream

What does this error mean?

A Snowflake Stream became stale because its offset advanced beyond the data retention period of the source table. The stream can no longer return change data capture (CDC) records.

Common causes

  • 1Stream was not consumed within the source table's DATA_RETENTION_TIME_IN_DAYS window
  • 2Task consuming the stream was suspended or erroring for more days than the retention period
  • 3Source table's retention period is set to 0 or 1 day while the consuming task runs infrequently
  • 4Stream was created on a table with a short retention period (common on transient tables)
  • 5Account-level retention reduced in cost-cutting — existing streams became stale

How to fix it

  1. 1Verify stream staleness: `SELECT SYSTEM$STREAM_HAS_DATA('<stream>'), SYSTEM$STREAM_GET_TABLE_TIMESTAMP('<stream>')`
  2. 2If the stream is stale it cannot be recovered — drop and recreate it: `DROP STREAM <stream>; CREATE STREAM <stream> ON TABLE <table>`
  3. 3After recreating, perform a full load of the target table to resync it with the source
  4. 4Increase the source table's retention period: `ALTER TABLE <t> SET DATA_RETENTION_TIME_IN_DAYS = 14`
  5. 5Ensure the Task consuming the stream runs at least once within the retention window
  6. 6Set up monitoring alerts on Task execution so stream staleness is caught before the retention window expires

Frequently asked questions

Can I recover data from a stale stream?

No — once the stream offset is beyond the retention period, the CDC records are permanently gone. You must recreate the stream and do a full load of the target to resync.

What retention period should I set for tables with streams?

Set DATA_RETENTION_TIME_IN_DAYS to at least 2-3x the maximum expected gap between Task runs. For daily Tasks, 7 days provides a comfortable safety margin.

Other data pipeline errors