USACE / USACE/cwms-data-api

POST time series data 500 error instead of "Incoming data has multiple values for same minute"

Open
#1,783 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs-follow-up
Dominant language
Java
Stars
28
Forks
25
Avg merge
4d 22h
Merged PRs (30d)
20

Description

When submitting a POST request for time series data, duplicate values within the same minute currently return a generic 500 Internal Server Error. Instead, the web console should display a more descriptive message:

ERROR: Incoming data has multiple values for the same minute.

{
    "name": "Rend Lk-Big Muddy.Stage.Inst.30Minutes.0.cwms-data-upload",
    "office-id": "MVS",
    "units": "ft",
    "values": [
        [
            "2026-11-29T07:30:00.000Z",
            951,
            0
        ],
        [
            "2026-11-29T08:00:00.000Z",
            952,
            0
        ],
        [
            "2026-11-29T08:30:00.000Z",
            953,
            0
        ],
        [
            "2026-11-29T09:00:00.000Z",<--------------------
            954,
            0
        ],
        [
            "2026-11-29T09:00:00.000Z",<--------------------
            954,
            0
        ]
    ]
}

cwms.cda.data.dao.AuthDao.prepareContextWithUser Validated Api Key for user=[CONTEXT ratelimit_period="5 SECONDS [skipped: 10]" ]
15-Jun-2026 14:59:09.840 SEVERE [ajp-nio-127.0.0.1-8009-exec-438] cwms.cda.api.TimeSeriesController.create -8388787327655537121: Internal Error
	org.jooq.exception.DataAccessException: SQL [{ call "CWMS_20"."CWMS_TS"."ZSTORE_TS" (?, ?, ?, ?, ?, cast(? as date), ?, ?) }]; ORA-20998: ERROR: ORA-06512: at "CWMS_20.CWMS_ERR", line 80
ORA-06512: at "CWMS_20.CWMS_TS", line 5808
ORA-06512: at "CWMS_20.CWMS_ERR", line 80
ORA-06512: at "CWMS_20.CWMS_TS", line 7096
ORA-20998: ERROR: Incoming data has multiple values for same minute.
ORA-06512: at "CWMS_20.CWMS_ERR", line 80
ORA-06512: at "CWMS_20.CWMS_TS", line 5808
ORA-06512: at "CWMS_20.CWMS_TS", line 5459
ORA-06512: at "CWMS_20.CWMS_TS", line 9633`
{
  "message": "Internal Error",
  "incidentIdentifier": "89753708-3291-4680-bc3c-ea312b1a7920",
  "source": "Unknown",
  "details": {}
}
🔥 Error during API processing: Error: HTTP 500: 
{"message":"Internal Error","incidentIdentifier":"-8064202843547236245","details":{}}
at createTS (cwms-data-upload.js:348:31)
    at async saveBtn.onclick (cwms-data-upload.js:427:21)

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.

Research direction

Start with the API failure at TimeSeriesController.create and the client flow in cwms-data-upload.js, especially createTS and saveBtn.onclick. Trace how the duplicate-minute database error becomes the generic response, then verify that the web console displays “Incoming data has multiple values for same minute” instead of “Internal Error” for the supplied request.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, javascript
Domain
api, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
62/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.