The atmosphere_delete_comment_record cron handler is the worst-case path: by the time it fires, the WP comment row and meta are gone. The TID survives only as the cron event's argument. If Publisher::delete_comment_by_tid() returns WP_Error, the PDS record is orphaned with no remaining WordPress pointer, and the cron event itself does not survive once the handler returns.
The error_log line is the only recovery artifact and operators may never see it.
Suggested shape
Capture pending hard-deletes in a durable plugin option/table before the comment row is removed (e.g. an atmosphere_pending_deletes array of TIDs), then a periodic cron retries until each remote delete succeeds.
Origin
Codex adversarial review; deferred from #32.
The
atmosphere_delete_comment_recordcron handler is the worst-case path: by the time it fires, the WP comment row and meta are gone. The TID survives only as the cron event's argument. IfPublisher::delete_comment_by_tid()returnsWP_Error, the PDS record is orphaned with no remaining WordPress pointer, and the cron event itself does not survive once the handler returns.The
error_logline is the only recovery artifact and operators may never see it.Suggested shape
Capture pending hard-deletes in a durable plugin option/table before the comment row is removed (e.g. an
atmosphere_pending_deletesarray of TIDs), then a periodic cron retries until each remote delete succeeds.Origin
Codex adversarial review; deferred from #32.