Erasure Coding Tasks
Drill down into individual pending or dead-lettered shard-repair tasks.
| Endpoint | Method | Admin Required |
|---|---|---|
/api/v1/admin/cluster/erasure-coding/tasks | GET | Yes |
Returns the full detail behind erasure coding status's counts - every currently pending or dead-lettered shard-repair task, including which shard of which object it targets, which node it's delivering to, and its last error. The shard-level counterpart of rebalance tasks.
Sorted by attempt count, descending - the most-stuck tasks first. Capped at 200 rows; this is a drill-down for a normally-small outstanding set, not a paginated browser for a large one.
Response
[
{
"id": "A1B2C3D4-E5F6-7890-ABCD-EF1234567890",
"bucketName": "my-bucket",
"key": "logo.png",
"versionId": "01J8Z9K3M4N5P6Q7R8S9T0V1W2",
"shardIndex": 3,
"operation": "put",
"targetNodeId": "B1C2D3E4-F5G6-7890-HIJK-LM1234567890",
"reason": "reconstruct",
"attempts": 2,
"nextAttemptAt": "2025-01-15T10:34:00Z",
"state": "pending",
"lastError": "Failed to reach cluster peer http://10.0.1.6:8080: connectionRefused"
}
]
Response Fields
id
string
The task's own id.
bucketName
string
The bucket the target object lives in.
key
string
The object key.
versionId
string
The object version this shard belongs to, or
null for a non-versioned object.shardIndex
integer
Which shard of the object's
k + m shards this task delivers - a fixed index assigned at encode time (indices 0..k-1 are data shards, k..k+m-1 parity), independent of which node currently holds it.operation
string
put (place the shard) or delete (remove it).targetNodeId
string
The node this task is trying to deliver the shard to, from List Nodes.
reason
string
Why the task exists:
write (a quorum write's straggler catch-up), rebalance (moving a shard to a node that gained its rank), reclaim (removing a stale shard), or reconstruct (rebuilding a permanently-lost shard from survivors).attempts
integer
How many delivery attempts have failed so far.
nextAttemptAt
string
When the dispatcher will retry next - exponential backoff (
30s × 2^attempts, capped at 1 hour), so a task can legitimately sit pending for up to an hour between attempts without being stuck.state
string
pending (still retrying) or failed (exhausted its 8-attempt retry budget and dead-lettered).lastError
string
The most recent delivery error, or
null if it hasn't been attempted yet.