CHW-4834 RiskWeightsSimulateDegraded

the preview backing this save was degraded and projected nothing — re-run POST /api/v1/intel/weights/simulate, or resubmit with "acknowledge_degraded_preview": true to save against an empty proje…

Default message: the preview backing this save was degraded and projected nothing — re-run POST /api/v1/intel/weights/simulate, or resubmit with “acknowledge_degraded_preview”: true to save against an empty projection (the override is recorded in the audit log)
HTTP status: 409 (client)

Problem. PUT /api/v1/intel/weights was rejected even though the simulate_id is fresh, kind-matched and inputs-matched. Cause. The stored preview DEGRADED: RiskWeightsSpec.Run returns a result with a non-empty fallback (and no error) when the intelligence corpus query fails or the org has no corpus rows yet, so the wizard can still render a “preview unavailable” state. Such a preview projected nothing, so accepting it as operator consent would mean the operator confirmed a blast radius nobody computed. The response message names the fallback reason verbatim. Fix. Re-run POST /api/v1/intel/weights/simulate once the corpus is available; or, if you accept saving against an empty projection, resubmit the PUT with "acknowledge_degraded_preview": true. The override path writes a weights.saved_without_preview row into audit_events carrying the simulate_id and the fallback reason. HTTP 409.