Recover a partial or pending Quality Goals apply
const url = 'https://example.com/api/v1/goals/reconcile';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"databaseId":1,"arrType":"radarr","profileName":"example","expectedEngineVersion":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/goals/reconcile \ --header 'Content-Type: application/json' \ --data '{ "databaseId": 1, "arrType": "radarr", "profileName": "example", "expectedEngineVersion": "example" }'Re-drives the recorded goal intent (preset + weights) for a profile against live state to heal a
partial write — scoring persisted but the binding missing, or a crash-interrupted apply. Recompiles
the cache from committed pcd_ops, then persists only the residual diff and confirms the binding.
Deterministic and idempotent: a second call is a no-op (reconciled=false, alreadyApplied=true).
Request Bodyrequired
Section titled “Request Bodyrequired”Recover a partial or pending Quality Goals apply by re-driving the recorded intent (#236).
object
Responses
Section titled “Responses”The reconciled plan, confirmed binding, and outcome
object
Deterministic translation of a goal into concrete scores + thresholds.
object
object
Closed set of semantic categories a custom format is classified into.
object
object
object
Ceiling-derived quality-ladder configuration (issue #221), always shown before persistence. A per-arr ceiling reshapes the shared quality_profile_qualities row set for every Arr that syncs the profile; sharedLadderNote surfaces that when the profile is sibling-compatible.
object
One row of the ceiling-derived quality ladder (issue #221).
Persisted intent metadata for a goal-governed quality profile.
object
object
ISO-8601 UTC timestamp of the last apply
Authoritative sandbox config diff of the persisted ladder + scoring, captured before persist so it matches the preview diff for the same request (issue #221).
object
object
Dot-notated field path
The apply-journal row id for this apply (issue #236).
Durable outcome of a Quality Goals apply/reconcile attempt (issue #236). Reports whether scoring changed, the binding’s terminal state, and the safe recovery action, so a partial write is never unreported.
object
Whether the scoring ops reached (or may have reached) their intended terminal state.
Whether ops were persisted this call (false when live already matched the intent).
Whether the live state already equalled the recorded intent (a no-op reconcile).
Durable outcome of a Quality Goals apply/reconcile attempt (issue #236). Reports whether scoring changed, the binding’s terminal state, and the safe recovery action, so a partial write is never unreported.
object
Whether the scoring ops reached (or may have reached) their intended terminal state.
Example
{ "plan": { "arrType": "radarr", "decisions": [ { "arrType": "radarr", "category": "unwanted", "reason": { "category": "unwanted", "ceiling": "above" } } ], "uncategorized": [ { "suggestedCategory": "unwanted" } ], "qualityLadder": { "ceiling": "720p", "items": [ { "type": "quality" } ] } }, "binding": { "weights": { "resolutionCeiling": "720p" } }, "configDiff": [ { "entityType": "quality_profile", "arrType": "radarr", "changes": [ { "type": "added" } ] } ], "applyStatus": { "status": "pending", "bindingStatus": "written", "recovery": { "action": "none" } }}Invalid request
object
Error message
Examplegenerated
{ "error": "example"}Nothing to reconcile for this profile
object
Error message
Examplegenerated
{ "error": "example"}Engine version drift (ErrorResponse) or a value-guard concurrency conflict during re-drive (GoalApplyFailure).
object
Error message
Structured failure body for a Quality Goals apply/reconcile (issue #236). message mirrors ErrorResponse’s human text (the UI failure reader falls back to error), and applyStatus carries the reported outcome + recovery action.
object
Durable outcome of a Quality Goals apply/reconcile attempt (issue #236). Reports whether scoring changed, the binding’s terminal state, and the safe recovery action, so a partial write is never unreported.
object
Whether the scoring ops reached (or may have reached) their intended terminal state.
Example
{ "applyStatus": { "status": "pending", "bindingStatus": "written", "recovery": { "action": "none" } }}Re-drive scoring or binding write failed
Structured failure body for a Quality Goals apply/reconcile (issue #236). message mirrors ErrorResponse’s human text (the UI failure reader falls back to error), and applyStatus carries the reported outcome + recovery action.
object
Durable outcome of a Quality Goals apply/reconcile attempt (issue #236). Reports whether scoring changed, the binding’s terminal state, and the safe recovery action, so a partial write is never unreported.
object
Whether the scoring ops reached (or may have reached) their intended terminal state.
Example
{ "applyStatus": { "status": "pending", "bindingStatus": "written", "recovery": { "action": "none" } }}