Skip to content

pdpv0: stuck settlement transactions after confirmed on-chain but failed DB update #922

@TippyFlitsUK

Description

@TippyFlitsUK

Environment

  • Curio version - curio version 1.27.0+calibnet+git_0e56f82e_2026-01-22T18:51:12-05:00
  • Node - calib.ezpdpz.net (ID 9)

Summary

Five settlement transactions became stuck in a loop causing repeated "Failed to process pending settle transactions" warnings. The transactions were confirmed on-chain
(tx_status='confirmed', tx_success=TRUE in message_waits_eth) but remained in filecoin_payment_transactions, causing the settle processor to repeatedly attempt processing them.

Root Cause

The transactions were successfully confirmed on-chain but the subsequent database cleanup (removing from filecoin_payment_transactions) failed or was interrupted. This left the
records in an inconsistent state where:

  • message_waits_eth shows: tx_status='confirmed', tx_success=TRUE
  • filecoin_payment_transactions still contains the records

Affected Records

  0x7d6bff4e0b0c3214d11c99b5599b1c719e26c5f500fe89ff3040763a4f21d0ef                                                                                                                       
  0x3e0ddefffc41e61f31e8be1e01fb945733cbc859899e08895f63269d04fd22f4                                                                                                                       
  0xf53ad83ef9f8226b1cb52c19f9c7405038e2dbc347b0cb50147d74bcc28c0539                                                                                                                       
  0x7ca5ec103015cbd74fbf8ac8944e96f0510216b57e60cc6b59ed1617e3b74168                                                                                                                       
  0xe7b4280f6f9b943e3da69b7e05c621013f24e7b58d0a75b2f899546d588c5ba8     

Resolution

Manual deletion of the stuck records:

DELETE FROM curio.filecoin_payment_transactions                                                                                                                                          
WHERE tx_hash IN (                                                                                                                                                                       
  '0x7d6bff4e0b0c3214d11c99b5599b1c719e26c5f500fe89ff3040763a4f21d0ef',                                                                                                                  
  '0x3e0ddefffc41e61f31e8be1e01fb945733cbc859899e08895f63269d04fd22f4',                                                                                                                  
  '0xf53ad83ef9f8226b1cb52c19f9c7405038e2dbc347b0cb50147d74bcc28c0539',                                                                                                                  
  '0x7ca5ec103015cbd74fbf8ac8944e96f0510216b57e60cc6b59ed1617e3b74168',                                                                                                                  
  '0xe7b4280f6f9b943e3da69b7e05c621013f24e7b58d0a75b2f899546d588c5ba8'                                                                                                                   
);    

Diagnostic Query

To find similar stuck records in the future:

  SELECT fpt.tx_hash, fpt.rail_ids                                                                                                                                                         
  FROM curio.filecoin_payment_transactions fpt                                                                                                                                             
  JOIN curio.message_waits_eth mwe ON fpt.tx_hash = mwe.signed_tx_hash                                                                                                                     
  WHERE mwe.tx_status = 'confirmed' AND mwe.tx_success = TRUE;   

Metadata

Metadata

Assignees

Labels

team/fs-wgItems being worked on or tracked by the "FS Working Group". See FilOzone/github-mgmt #10

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions