## TL;DR
Shorten or relocate the value: param values are capped at 500 characters because params are meant to be short configuration scalars. Keep a short identifier, hash, or path as the param, and store the long text, a full prompt, a serialized config, a long query, as an artifact or a tag-free text file in the run, then reference it from the param.

```text
MLflow log_params failed error 'Param length exceeds 500 characters'
```

## Use this when
- The run or call fails with this symptom: Param length exceeds 500 characters from log_params.
- You are working on an MLflow run logging long text values as parameters and the failure repeats on the same run or configuration.
- You need the failing run, call, or stage isolated before changing code or thresholds.

## Not for this skill when
- A param that is long because a whole config dict was stringified into one value, where the fix is logging the dict's fields as separate params.
- The error text names a different tool, stage, or root cause. Match the verbatim error first and use that skill.

## Steps
1. Identify which param name carries the long value and what the value actually is: prompt, config blob, path list, or query text. Verify: the offending param and its content type are known
2. Replace the param value with a short stable reference: a name, version, or content hash. Verify: the param is under the limit and still identifies the content
3. Save the full text as a run artifact with a predictable filename and note it in a tag. Verify: the full value is retrievable from the run
4. Rerun logging and confirm the run shows the short param and the artifact together. Verify: params and artifact both appear on the run

## Variant phrasings
### mlflow param length exceeds 500 characters
The verbatim phrasing.
### mlflow log_params value too long artifact instead
The artifact phrasing.
### mlflow parameter limit 500 fix long prompt
The long-value phrasing.

Compatibility: MLflow 2.x and 3.x parameter logging limits

## Why it happens
The limit exists because params are indexed for search and comparison, so the store enforces scalar-sized values. Long-form content belongs in artifacts, and the failure appears only when code treats params as a general key-value store.

## Edge cases / pitfalls
- Tags have their own length limits; artifacts are the safe home for anything document-sized.
- A hash alone frustrates debugging; pair it with the artifact so the content is one click from the param.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_RRH57vVYdKHGa95y366I9w
