2026-05-31 04:02:09 +00:00
# Distributor Troubleshooting
2026-06-04 12:10:50 +00:00
Audience: administrators and operators diagnosing `distributor` command, configuration, publishing, storage, or HTTP upload failures.
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Each entry lists the symptom, likely cause, diagnostic step, safe fix, and relevant reference link. Command syntax lives in [CLI ](cli.md ), configuration fields live in [Configuration ](config.md ), and operating procedures live in [Operations ](operations.md ).
## Config File Is Missing
Symptom: `load config ... no such file or directory` .
Likely cause: `--config` points to a missing file, or `--config` was omitted and `/usr/local/etc/distributor/config.yml` is not installed.
2026-05-31 04:02:09 +00:00
Diagnostic:
```sh
ls -l <config-path>
```
2026-06-04 12:10:50 +00:00
Safe fix: pass an existing file with `--config` , or install a config at the default path.
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Configuration ](config.md#config-file-loading ).
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
## Config Contains An Unknown Field
Symptom: `parse config ... field not found` .
Likely cause: the YAML contains a key that is not part of the implemented config schema.
2026-05-31 04:02:09 +00:00
Diagnostic:
```sh
go run ./cmd/distributor run --config <config-path> --dry-run
```
2026-06-04 12:10:50 +00:00
Safe fix: remove or rename unsupported fields using the canonical config reference.
Reference: [Configuration ](config.md ).
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
## Backend Name Or Placement Is Invalid
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `backend ... is unsupported` or `http_upload is only supported for sources` .
Likely cause: a backend name is misspelled, not executable, or configured in the wrong role.
2026-05-31 04:02:09 +00:00
Diagnostic:
```sh
rg -n "backend:" <config-path>
```
2026-06-04 12:10:50 +00:00
Safe fix: use `local` , `ssh` , or `s3` for executable sources and destinations. Use `http_upload` only as a source served by `distributor serve` .
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Configuration ](config.md#backend-reference ).
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
## CLI Arguments Select The Wrong Source Mode
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `configured source mode requires --pipeline` , `does not accept a local path with --config, --pipeline, or --bundle` , `validate command requires a path` , or `inspect command requires a path` .
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: `validate` or `inspect` mixed local path mode with configured source mode, or omitted the required source selector.
2026-06-03 15:22:52 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
go run ./cmd/distributor validate --help
go run ./cmd/distributor inspect --help
2026-06-03 15:22:52 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: use either `distributor validate <path>` / `distributor inspect <path>` , or use `--config <path> --pipeline <id>` with optional `--bundle <path>` .
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Reference: [CLI ](cli.md#validate ).
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
## Output Format Is Invalid
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `format must be text or json` .
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: an unsupported value was passed to `--format` .
2026-06-03 15:22:52 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
go run ./cmd/distributor run --help
2026-06-03 15:22:52 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: use `--format text` or `--format json` .
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Reference: [CLI ](cli.md#common-output-format ).
2026-06-04 00:14:32 +00:00
2026-06-04 12:10:50 +00:00
## JSON Mode Wrote No JSON Document
2026-06-04 00:14:32 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `--format json` exits non-zero and stdout has no JSON result.
2026-06-04 00:14:32 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: the command failed before it could construct a result, such as invalid arguments, missing config, unreadable secrets, or source setup failure.
2026-06-03 15:22:52 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
go run ./cmd/distributor run --config <config-path> --format json
2026-06-03 15:22:52 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: read stderr, fix the setup problem, then rerun. Partial destination failures during `run` can produce JSON; fatal setup failures do not.
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Reference: [CLI ](cli.md#output-and-exit-behavior ).
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
## Source Pipeline Is Not Found
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `pipeline "<id>" not found` .
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: configured source diagnostics or upload processing selected a pipeline id that is absent from the loaded config.
2026-06-03 15:22:52 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
rg -n "id:" <config-path>
2026-06-03 15:22:52 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: pass an existing `--pipeline` value or correct the pipeline id in config.
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Configuration ](config.md#pipelines ).
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
## Source Bundles Are Not Found
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `no bundles found` , `no bundles found under "."` , `stat ssh ... not_found` , or `stat s3 ... not_found` .
2026-06-03 15:22:52 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: the source root, source-root-relative bundle path, S3 prefix, SSH path, or permissions do not expose a directory containing `manifest.json` .
2026-06-01 20:44:27 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
go run ./cmd/distributor validate --config <config-path> --pipeline <pipeline-id>
2026-06-01 20:44:27 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: correct the configured source backend root, permissions, prefix, or `--bundle` path. The selected bundle directory must contain `manifest.json` .
Reference: [Operations ](operations.md#filesystem-and-storage-layout ).
## Source Manifest Or Files Fail Validation
2026-06-01 20:44:27 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `sha256 mismatch` , `size mismatch` , `digest mismatch` , missing manifest fields, or unsafe source paths.
2026-06-01 20:44:27 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: files changed after `manifest.json` was written, the manifest digest is stale, or the producer wrote invalid bundle paths.
2026-06-01 20:44:27 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
go run ./cmd/distributor validate <source-root>
2026-06-01 20:44:27 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: regenerate the producer bundle and manifest together. Do not edit destination state to work around source validation failures.
Reference: [Operations ](operations.md#cleanup-and-recovery ).
2026-06-01 20:44:27 +00:00
2026-06-04 12:10:50 +00:00
## Destination Has Unmanaged Content
2026-06-01 21:11:35 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `destination has content but no distributor state` or a plan reason containing `fail_unmanaged` .
Likely cause: the destination bundle path contains files but no valid `.distributor.json` , so `distributor` will not claim it by default.
2026-06-01 21:11:35 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
find <destination-path> -maxdepth 2 -print
2026-06-01 21:11:35 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: choose an empty destination path, move unrelated files aside, or preview `run --dry-run --force` only after confirming the reported bundle path is safe to replace.
Reference: [Operations ](operations.md#forced-replacement-workflow ).
## Destination State Conflicts With Source
2026-06-01 21:11:35 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `fail_conflict` , `destination source id differs` , `same id and created time but different digest` , `pipeline id ... does not match` , or `destination id ... does not match` .
2026-06-01 21:11:35 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: `.distributor.json` belongs to a different pipeline, destination, source id, or same-created source with different content.
2026-06-01 21:11:35 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
cat <destination-path>/.distributor.json
go run ./cmd/distributor inspect <source-root>
2026-06-01 21:11:35 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: verify the source and destination are intended to match. Use a separate destination path for unrelated content. To replace the existing state, configure `transfer.on_conflict: replace` , preview with `--dry-run --force` , then publish with `--force` .
Reference: [Operations ](operations.md#destination-state-and-retry-behavior ).
## Destination Is Newer Than Source
2026-06-01 21:11:35 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `skip_destination_newer` or `destination is newer and replacement requires --force` .
2026-06-01 20:44:27 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: the destination state records a source manifest with a later `created` timestamp than the current source.
2026-06-01 20:44:27 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
go run ./cmd/distributor run --config <config-path> --dry-run --format json
2026-06-01 20:44:27 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: keep the default skip behavior unless replacement is intentional. To replace newer state, configure `transfer.on_destination_newer: replace` , preview with `--dry-run --force` , then publish with `--force` .
Reference: [Operations ](operations.md#forced-replacement-workflow ).
## Forced Replacement Appears In A Plan
2026-06-01 20:44:27 +00:00
2026-06-04 12:10:50 +00:00
Symptom: dry-run output includes `force_replace` .
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: the run used `--force` , and planning selected a supported destructive replacement.
2026-05-31 04:02:09 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
go run ./cmd/distributor run --config <config-path> --dry-run --force
2026-05-31 04:02:09 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: inspect the pipeline id, destination id, backend, and bundle path. Proceed only if deleting everything inside that destination bundle path is intended.
2026-05-31 17:11:53 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Operations ](operations.md#forced-replacement-workflow ).
2026-05-31 17:11:53 +00:00
2026-06-04 12:10:50 +00:00
## Output Path Collision
Symptom: `destination output path collision` .
Likely cause: publication would write two outputs to the same destination path, such as copying `report.html` while also generating `report.html` from `report.md` .
2026-05-31 17:11:53 +00:00
Diagnostic:
```sh
go run ./cmd/distributor run --config <config-path> --dry-run
```
2026-06-04 12:10:50 +00:00
Safe fix: adjust source files or publish/transform policy so copied and generated outputs do not collide.
2026-05-31 17:11:53 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Configuration ](config.md#publish-and-transform-policy ).
2026-05-31 17:11:53 +00:00
2026-06-04 12:10:50 +00:00
## Run Failed After Writing Some Files
2026-05-31 17:11:53 +00:00
2026-06-04 12:10:50 +00:00
Symptom: a destination write failed and the command exited non-zero after partial work.
2026-05-31 17:11:53 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: storage write failure, permission issue, network interruption, or object-store error during publish execution.
2026-05-31 17:11:53 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
find <destination-path> -maxdepth 2 -print
2026-05-31 17:11:53 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: inspect the destination bundle path printed in the error. `distributor` attempts to remove outputs from the failed attempt, but operators should verify the destination before retrying. Rerun `--dry-run` before publishing again.
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Operations ](operations.md#destination-state-and-retry-behavior ).
2026-05-31 17:00:47 +00:00
2026-06-04 12:10:50 +00:00
## JSON Run Result Has `ok: false`
2026-05-31 17:00:47 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `run --format json` exits non-zero with a JSON result where `ok` is `false` .
2026-05-31 17:00:47 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: at least one destination failed after planning or execution began, while other destination results were still available.
2026-05-31 17:00:47 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
go run ./cmd/distributor run --config <config-path> --format json
2026-05-31 17:00:47 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: inspect the top-level `errors` array, destination actions, output errors, and summary. Fix failed destinations, then preview with `--dry-run --format json` .
Reference: [CLI ](cli.md#output-and-exit-behavior ).
## Secrets Directory Is Missing Or Unreadable
2026-05-31 17:00:47 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `load secrets directory ... no such file or directory` , `permission denied` , or `secret filename ... is invalid` .
2026-05-31 17:00:47 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: `secrets.directory` points to a missing or unreadable directory, or it contains a regular file whose name is not a valid credential variable name.
2026-05-31 17:00:47 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
ls -ld <secrets-directory>
2026-05-31 17:00:47 +00:00
find <secrets-directory> -maxdepth 1 -type f -printf '%f\n'
```
2026-06-04 12:10:50 +00:00
Safe fix: mount or create the directory, adjust permissions for the service user, or rename/remove invalid secret files. Secret filenames must match `[A-Za-z_][A-Za-z0-9_]*` .
Reference: [Configuration ](config.md#secrets ).
## Credential Variable Is Missing Or Empty
2026-05-31 17:00:47 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `credential environment variable ... is not set` , `credential environment variable ... is empty` , or S3 authentication errors such as `AccessDenied` , `InvalidAccessKeyId` , or `SignatureDoesNotMatch` .
2026-05-31 17:00:47 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: configured S3 credential variable names are not available through the process environment or `secrets.directory` , are empty, or do not authorize the requested bucket/prefix.
2026-05-31 17:00:47 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
env | cut -d= -f1 | rg '^(<access-key-variable>|<secret-key-variable>)$'
ls -l <secrets-directory>
2026-05-31 17:00:47 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: provide both configured S3 credential values, correct IAM/service permissions, or omit explicit credential fields to use the AWS SDK default credential chain.
Reference: [Configuration ](config.md#s3-compatible-backend ).
## Secret File Is Ignored In Favor Of Environment
2026-05-31 17:00:47 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `secret ... ignored because the real environment already has that variable` .
2026-05-31 17:00:47 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: the same credential name exists in the process environment and `secrets.directory` with different values.
2026-05-31 17:00:47 +00:00
Diagnostic:
```sh
2026-05-31 17:11:53 +00:00
env | cut -d= -f1 | rg '^<variable-name>$'
2026-05-31 17:00:47 +00:00
ls -l <secrets-directory>/<variable-name>
```
2026-06-04 12:10:50 +00:00
Safe fix: remove one source of the credential or intentionally keep the process environment value. `distributor` does not print either value.
2026-05-31 17:00:47 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Operations ](operations.md#secrets-operation ).
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
## SSH Auth Is Not Configured
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `no SSH auth methods configured` .
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: no SSH agent is available and `ssh_key_file` is missing or unreadable.
2026-05-31 16:53:37 +00:00
Diagnostic:
```sh
test -n "$SSH_AUTH_SOCK" && ssh-add -l
ls -l <ssh-key-file>
```
2026-06-04 12:10:50 +00:00
Safe fix: start an SSH agent with an appropriate key loaded, or configure a readable private key with `ssh_key_file` .
Reference: [Configuration ](config.md#sshsftp-backend ).
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
## SSH Host Key Fails
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `host key ... is unknown` , `known_hosts is required` , or `host key ... has changed` .
Likely cause: strict host key checking has no trusted key, `accept-new` cannot persist a new key, or the remote host key differs from the stored key.
2026-05-31 16:53:37 +00:00
Diagnostic:
```sh
ls -l <known-hosts-path>
ssh-keygen -F <host> -f <known-hosts-path>
```
2026-06-04 12:10:50 +00:00
Safe fix: pre-populate `known_hosts` for `strict` , configure a writable `known_hosts` path for `accept-new` , or verify the server identity before updating a changed key. Do not disable host key checking to bypass an unexpected changed key.
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Operations ](operations.md#sshsftp ).
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
## S3 Prefix Is Invalid
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `prefix must be a clean relative slash-separated path` .
2026-06-01 21:11:35 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: the S3 prefix contains traversal, dot segments, empty segments, or backslashes after leading and trailing slashes are trimmed.
2026-06-01 21:11:35 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
go run ./cmd/distributor run --config <config-path> --dry-run
2026-06-01 21:11:35 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: use a clean relative prefix such as `reports/archive` , or omit `prefix` .
2026-06-01 21:11:35 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Configuration ](config.md#s3-compatible-backend ).
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
## S3 Location Or Connectivity Fails
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `NoSuchBucket` , `InvalidBucketName` , `not_found` , endpoint connection failures, or TLS/network errors.
2026-05-31 16:53:37 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: endpoint, bucket, prefix, region, path-style mode, network routing, or credentials are wrong for the service.
2026-05-31 04:02:09 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
go run ./cmd/distributor run --config <config-path> --dry-run
curl -I <endpoint>
2026-05-31 04:02:09 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: verify `endpoint` , `bucket` , `region` , `prefix` , and `force_path_style` . For S3-compatible services, keep `force_path_style: true` unless the service requires virtual-host addressing. Distributor does not provide an insecure TLS bypass setting.
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Operations ](operations.md#s3-compatible-storage ).
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
## HTTP Server Cannot Bind
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `bind HTTP server ... address already in use` .
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: another process is listening on `server.http.bind` .
2026-05-31 04:02:09 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
ss -ltnp | rg '<port>'
2026-05-31 04:02:09 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: stop the conflicting process or configure a different bind address.
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Configuration ](config.md#serverhttp ).
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
## HTTP Upload Token Is Missing Or Duplicated
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `upload token environment variable ... is not set` , `... is empty` , or `upload token environment variables ... resolve to the same value` .
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: an `http_upload` source references a missing/empty `token_env` , or two upload pipelines resolve to the same bearer token.
2026-05-31 04:02:09 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
rg -n 'token_env:' <config-path>
env | cut -d= -f1 | rg '^<token-variable>$'
ls -l <secrets-directory>/<token-variable>
2026-05-31 04:02:09 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: provide one distinct non-empty token value per upload pipeline through the process environment or `secrets.directory` . Do not put literal tokens in YAML.
2026-05-31 17:29:20 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Configuration ](config.md#http-upload-source-backend ).
2026-05-31 17:29:20 +00:00
2026-06-04 12:10:50 +00:00
## Upload Request Is Unauthorized
2026-05-31 17:29:20 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `POST /upload` returns `401` .
2026-05-31 17:29:20 +00:00
2026-06-04 12:10:50 +00:00
Likely cause: the request lacks `Authorization: Bearer <token>` , has an empty token, or uses a token that does not match any configured upload pipeline.
2026-05-31 17:29:20 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
curl -i -X POST http://127.0.0.1:8080/upload \
-H "Authorization: Bearer $DISTRIBUTOR_UPLOAD_TOKEN" \
-H "Content-Type: application/x-tar" \
--data-binary @bundle .tar
2026-05-31 17:29:20 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: use the token value resolved by the configured `token_env` . Do not include token values in logs or tickets.
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Reference: [Operations ](operations.md#http-upload-operation ).
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
## Upload Request Is Rejected Before A Run ID
Symptom: `POST /upload` returns `400` , `413` , `415` , or `503` .
Likely cause: the request included a `pipeline` or `pipeline_id` query, archive content is malformed, the body exceeds size limits, content type is unsupported, or the in-memory upload queue is full.
2026-05-31 04:02:09 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
tar -tf bundle.tar
tar -tzf bundle.tar.gz
rg -n 'max_upload_size|queue_size|max_concurrency' <config-path>
2026-05-31 04:02:09 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: send one valid tar or tar.gz source bundle archive with `Content-Type: application/x-tar` , `application/gzip` , or `application/x-gzip` ; remove pipeline query parameters; reduce archive size or raise the configured limit; retry after queue pressure drops.
Reference: [Operations ](operations.md#http-upload-operation ).
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
## Upload Status Is Missing
2026-05-31 04:02:09 +00:00
2026-06-04 12:10:50 +00:00
Symptom: `GET /runs/<run_id>` returns `404` .
Likely cause: the run id is wrong, the process restarted, or the retained status record expired after `server.http.retention` .
2026-05-31 04:02:09 +00:00
Diagnostic:
```sh
2026-06-04 12:10:50 +00:00
curl -i http://127.0.0.1:8080/runs/<run-id>
rg -n 'retention:' <config-path>
2026-05-31 04:02:09 +00:00
```
2026-06-04 12:10:50 +00:00
Safe fix: use the exact `run_id` returned by upload admission. Increase retention if operators need a longer status window.
Reference: [Operations ](operations.md#http-upload-operation ).