Skip to main content

Clear `metadata_hash` for every provider-backed series row in scope so the next refresh tick rewrites them. The persist layer short-circuits the series UPDATE when the incoming provider payload hashes to the stored value; that's the right call for steady-state refreshes, but it strands existing rows whenever a new denormalized column lands on the `series` table (the upstream payload is unchanged → hash matches → write skipped → new column stays NULL forever).

POST 

/api/v1/series/invalidate-metadata-hashes

This endpoint is the operator escape hatch for that scenario. It runs synchronously and returns the affected count; the operator then triggers /series/refresh-all (or waits for the next cron tick) to actually rewrite the rows.

Manual rows (metadata_source = 'manual') are always left alone.

Request

Responses