USACE / USACE/cwms-data-api

[Bug]: Timeseries request times out when unit(s) parameter specified

Open
#1,901 1 comment 0 reactions 1 assignee View on GitHub

@krowvin is already working on this.

Since Aug 26, 2026.

bug priority:blocker
Dominant language
Java
Stars
28
Forks
25
Avg merge
4d 22h
Merged PRs (30d)
20

Description

Describe the bug

When the unit or units parameter is specified as a unit like ft the request times out with a 408 error. This was discovered by using shefParser which uses these type requests a lot.

Expected behavior

It should return the data in the requested units.

To Reproduce

In test GET /cwms-data/timeseries?office=MVP&name=Baldhill_Dam.Elev.Inst.15Minutes.0.rev-NGVD29&unit=ft will eventually timeout with a 408.

GET /cwms-data/timeseries?office=MVP&name=Baldhill_Dam.Elev.Inst.15Minutes.0.rev-NGVD29 returns as expected.

Priority

High

Logs/Incident Identifier
ERROR: CDA Error: response=<Response [408]>
WARNING: Skipping time series [Baldhill_Dam.Elev.Inst.15Minutes.0.rev-NGVD29]: error fetching from CDA: CWMS API Error (CDA_SERVER/mvp-data/timeseries?office=MVP&name=Baldhill_Dam.Elev.Inst.15Minutes.0.rev-NGVD29&unit=ft&begin=2026-08-24T11%3A37%3A03.091932&end=2026-08-26T11%3A37%3A03.091932&page-size=300000&trim=True). {"message":"Request is taking too long; try narrowing the date range.","incidentIdentifier":"c8552fee-d73e-4573-b7ba-3147d4c53463","source":"Unknown","details":{}}
(CDA_SERVER/mvp-data/timeseries?office=MVP&name=Baldhill_Dam.Elev.Inst.15Minutes.0.rev-NGVD29&unit=ft&begin=2026-08-24T11%3A37%3A03.091932&end=2026-08-26T11%3A37%3A03.091932&page-size=300000&trim=TrueERROR: CDA Error: response=<Response [408]>
CURL Commands

CDA Version

2026.08.14-testa

Additional context

GPT 5.4 suggests the fix is to keep direct-read, but change the unit handling:

  • Treat unit/units as response units, not storage-row filters.
  • Resolve EN/SI to a concrete response unit as CDA already does.
  • Validate only that native unit -> requested unit is convertible.
  • Fetch rows in the series native/source unit.
  • Convert VALUE to the requested response unit during query or immediately after fetch.
  • Keep the response metadata units field set to the requested unit.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.