USACE / USACE/cwms-data-api

Cannot POST to Blob Endpoint `client-error`

Open
#1,713 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Describe the bug
Attempting to POST a blob to the /blobs endpoint on CWBI-DEV results in a client-error response.

We were not able to find anything in the grafana logs (pretty full...) and there was no incident identifier returned.

We tried in swagger too and got the same response

Expected behavior
Expect a 204 or 200 and a blob to store

Logs/Incident Identifier
When you receive an error if possible add your corresponding log output. This will be from the Tomcat logs.
Could not see anything in tomcat, no identifier returned. Could it be the WAF?

CURL Commands

curl -X 'POST' \
  'https://water.dev.cwbi.us/cwms-data/blobs?fail-if-exists=false' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer redacted' \
  -H 'Content-Type: application/json;version=2' \
  -H 'Cache-Control: no-cache, no-store, max-age=0' \
  -H 'Pragma: no-cache' \
  -d '{
  "office-id": "SWT",
  "id": "test",
  "description": "test",
  "media-type-id": "text/plain",
  "value": "aGVsbG8="
}'

CDA Version (please complete the following information):
At the top of any instance of CDA you will see a version. Please provide that version.

  • Version 2026.04.29-develop

Additional context
Working with @inguyen314 to store new blobs to DEV and not currently working

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 by reproducing the POST request from the issue against the /cwms-data/blobs endpoint, then inspect the available Tomcat and Grafana logs for the failed request. Done means identifying why the request returns client-error and confirming that a valid blob POST returns 200 or 204 and stores the blob.

Written by the indexing model from the issue text.

Assessment

Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.