Skip to content

Failed to broadcast transaction, status 400, logged at ERROR level #412

Closed
@whfuyn

Description

@whfuyn
2024-11-27 00:52:15 INFO  [lightning::chain::onchaintx:512] Triggering rebroadcast/fee-bump for request with inputs [OutPoint { txid: _, vout: 1 }]
2024-11-27 00:52:15 DEBUG [lightning::chain::package:1002] Adding claiming input for outpoint _:1
2024-11-27 00:52:15 INFO  [lightning::chain::onchaintx:535] Replaying onchain event to spend inputs [OutPoint { txid: _, vout: 1 }]
2024-11-27 00:52:15 INFO  [lightning::events::bump_transaction:915] Handling channel close bump (claim_id = _, commitment_txid = _)
2024-11-27 00:52:15 DEBUG [lightning::events::bump_transaction:673] Performing coin selection for commitment package (commitment and anchor transaction) targeting 200652 sat/kW
2024-11-27 00:52:15 DEBUG [lightning::events::bump_transaction:547] Attempting coin selection targeting 200652 sat/kW (force_conflicting_utxo_spend = false, tolerate_high_network_feerates = false)
2024-11-27 00:52:15 DEBUG [lightning::events::bump_transaction:729] Signing anchor transaction _
2024-11-27 00:52:15 INFO  [lightning::events::bump_transaction:751] Broadcasting anchor transaction _ to bump channel close with txid _
2024-11-27 00:52:15 ERROR [ldk_node::chain:1016] Failed to broadcast transaction _: HttpResponse { status: 400, message: "RPC error" }
2024-11-27 00:52:15 ERROR [ldk_node::chain:1016] Failed to broadcast transaction _: HttpResponse { status: 400, message: "RPC error" }

According to the error handling below, it looks like status 400 bad request should be logged at TRACE level. But the error is returned in a different variant (Error::HttpResponse vs. Error::Reqwest).

ldk-node/src/chain/mod.rs

Lines 994 to 1030 in b86e87d

esplora_client::Error::Reqwest(err) => {
if err.status() == reqwest::StatusCode::from_u16(400).ok() {
// Log 400 at lesser level, as this often just means bitcoind already knows the
// transaction.
// FIXME: We can further differentiate here based on the error
// message which will be available with rust-esplora-client 0.7 and
// later.
log_trace!(
logger,
"Failed to broadcast due to HTTP connection error: {}",
err
);
} else {
log_error!(
logger,
"Failed to broadcast due to HTTP connection error: {}",
err
);
}
log_trace!(
logger,
"Failed broadcast transaction bytes: {}",
log_bytes!(tx.encode())
);
},
_ => {
log_error!(
logger,
"Failed to broadcast transaction {}: {}",
txid,
e
);
log_trace!(
logger,
"Failed broadcast transaction bytes: {}",
log_bytes!(tx.encode())
);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions