Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › Bitcoin

How to troubleshoot failed Bitcoin payments in Core Lightning

By Freedom251 Team · · 11 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Start by determining whether the payment is actually failed or is still pending. In Core Lightning, listpays gives the payment-level result, while listsendpays exposes the individual parts and attempts that produced it. If an attempt was launched with sendpay, use waitsendpay to obtain a definitive result and inspect the returned failure object. Only then decide whether the cause is an expired invoice, unavailable routing, or a fee and timelock limit.

Use this order: state, attempt, failure, constraint, route

Failed outgoing Lightning payments are easiest to diagnose when each layer is checked separately. A payment may have several concurrent attempts, and a temporary wait is not equivalent to a failed payment. Follow this sequence:

As an Amazon Associate I earn from qualifying purchases.

  1. Query the aggregate payment state with listpays, using the invoice string or payment hash.
  2. If the state is not enough to explain the result, inspect parts and attempts with listsendpays.
  3. For an attempt created with sendpay, call waitsendpay and distinguish a timeout from a definitive failure.
  4. Read the failure object, including the reported hop and BOLT #4 failure code when one is present.
  5. Check the invoice with listinvoices, then compare the error with the documented invoice, route, fee, and delay conditions.
  6. Choose a remedy that matches the evidence. Route problems may justify trying other routes or improving channel availability; an expired invoice requires a new invoice instead.

This order prevents a common mistake: changing channels or retrying blindly before confirming that the invoice and payment state are valid.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Establish the payment-level state with listpays

listpays combines the individual payment parts and reports one of three overall states: pending, complete, or failed. Run it with the invoice string or payment hash associated with the outgoing payment. Treat this result as the starting point, not as the complete explanation.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
State from listpays Meaning for your investigation Next action
pending The payment has not reached a final aggregate result. Inspect attempts and, when applicable, wait for a definitive outcome with waitsendpay.
complete The aggregate payment has succeeded. Do not treat an earlier failed part as a failed payment; inspect lower-level records only if you need an audit trail.
failed The aggregate payment did not complete successfully. Inspect the relevant attempt and its failure object before changing configuration or channels.

A payment can contain more than one part. Consequently, a single failed attempt does not necessarily mean that the payment-level state is failed: another part may still be pending or may later complete the payment. Conversely, a payment-level failure can hide useful detail that is visible only in the individual attempts.

Inspect parts and concurrent attempts with listsendpays

Use listsendpays when listpays tells you the outcome but not why it occurred. This RPC exposes the lower-level sendpay attempts and the parts associated with a payment. More than one concurrent sendpay can exist for the same payment, so do not assume there is one record to read.

Identify the attempt that matters

  • Match the records to the invoice or payment hash you are diagnosing.
  • Separate attempts from parts: a payment may have several parts, and an attempt may represent one of several route submissions.
  • Use the attempt that produced the final result, or examine each attempt when the aggregate state is still pending.
  • Keep the attempt context when recording a failure. A route error from one attempt is not proof that every possible route has the same problem.

Why the low-level view changes the diagnosis

Without listsendpays, operators often collapse several different situations into “the payment failed.” The detailed records can show that one route was rejected while another is still being tried, or that multiple attempts reported different failures. This distinction determines whether you should wait, replace the invoice, adjust limits, or investigate routing.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use waitsendpay to separate a timeout from a failure

When an outgoing attempt was made with sendpay, waitsendpay polls or waits for the definitive result. Its most important diagnostic rule is simple: a timeout means the payment has not yet definitively succeeded or failed. Do not report a timeout as a failed payment and immediately conclude that the invoice or route is invalid.

When the wait returns a route failure

A route failure can include the erring hop index, the node and channel that reported the problem, and the BOLT #4 failure code. Capture all of those values together. The hop index tells you where in the proposed route the error was reported; the node and channel identify the network location; and the BOLT #4 code supplies the protocol-level category. That combination is far more actionable than a generic “unable to pay” message.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

When the wait times out

  • Leave the payment classified as unresolved until another command establishes a final state.
  • Check the aggregate record with listpays and the individual records with listsendpays.
  • Do not treat the absence of a final response as proof of invoice expiry, route failure, or a fee-limit problem.

Read the failure at the right layer

Once you have a definitive failure, use the failure object rather than guessing from the payment amount or the fact that a retry did not work. The reported hop, node, channel, and BOLT #4 code describe a route-level rejection when those fields are present. The error class documented for the payment command can instead point to invoice validity or configured constraints.

Evidence What it tells you What it does not prove
Payment state is pending The aggregate result is not final. It does not prove that the route is broken or that the invoice has expired.
Payment state is complete The payment succeeded in aggregate. It does not mean every individual attempt succeeded.
Payment state is failed The payment did not complete. It does not by itself identify whether the invoice, limits, or routing caused the failure.
Erring hop, node, channel, and BOLT #4 code A route failure has a specific reporting location and protocol code. It does not establish that every alternate route or channel would fail.
waitsendpay timeout No definitive success or failure was returned at that wait. It is not a final payment failure.

Check whether the invoice is still valid

Use listinvoices to query invoice state by the invoice string or payment hash. This check belongs near the beginning of a failed-payment investigation because a route cannot deliver a payment to an invoice that is no longer valid.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Error 207: invoice expiry

The pay reference documents error 207 for an expired invoice. If the failure corresponds to that condition, routing changes will not repair the existing invoice. Obtain a current invoice from the recipient and start a new payment rather than repeatedly retrying the expired one.

Do not confuse invoice state with payment state

An invoice query answers a different question from listpays. listinvoices tells you about the recipient invoice record; listpays tells you how your outgoing payment is progressing. Query both when the evidence is ambiguous, and keep the invoice string or payment hash used for each lookup so that records from different payments are not mixed.

Check fee and delay limits before changing routes

The pay documentation identifies error 206 for a payment whose required fee or delay exceeds the configured limits. This is a constraint failure, not the same thing as an expired invoice or a route that simply cannot be found.

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

What error 206 means operationally

  • The attempted payment requires more forwarding fee, more timelock delay, or both than your configured limits allow.
  • Retrying the identical route without changing the constraint or selecting a route with lower requirements is unlikely to change the result.
  • Before relaxing a limit, verify the reported failure and weigh the operational effect of accepting a higher fee or longer delay.

Keep the limit decision separate from the route decision. A route may exist but be rejected because it exceeds your policy; another route may satisfy the same invoice without requiring a policy change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recognize route-unavailability failures

Error 205: no route found

The pay reference documents error 205 for inability to find a route. This is distinct from error 207 (invoice expiry) and error 206 (fee or delay beyond configured limits). Confirm the invoice first, then inspect the individual attempts and any route-failure details before deciding how to improve availability.

Why one failed route is not the same as universal failure

Lightning payments may be attempted through different paths. A route failure identifies what happened to the route that reported the error; it does not prove that every possible path to the recipient is unavailable. That is why the low-level attempt records and the BOLT #4 failure code matter.

Choose a routing remedy that matches the evidence

Try additional route candidates with xpay

The official FAQ points to xpay as a way to iterate through possible routes. Use it when the evidence indicates route selection is the problem and your installed release supports the command. It is an option for exploring alternatives, not a guarantee that a particular payment will succeed.

Consider channel availability

The Core Lightning FAQ describes route failure as common and says that opening more channels can increase the available routes to a recipient and lower the probability of failure. Treat that as an operational routing option, not a universal fix. A new channel will not correct an expired invoice, and it may not address a fee or delay limit that rejects the route you already selected.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
  • Use the invoice and failure evidence to decide whether the problem is recipient reachability or your local policy.
  • Prefer a route-selection experiment when the payment has a specific hop-level failure and alternate paths may exist.
  • Consider additional channels when repeated route failures indicate insufficient path availability to the recipient.
  • Recheck the payment state after each change instead of assuming that a new channel or retry succeeded.

Keep commands aligned with your Core Lightning release

Command behavior changes across Core Lightning releases. The current pay reference says that pay is deprecated in v26.06 and removed after v27.03. It also says that, as of v26.06, xpay transparently handles most pay invocations. Check the documentation for the release installed on your node before copying command names or parameter names.

Installed release context Payment-command guidance Diagnostic implication
Before v26.06 Use the payment command documented for that release; the transition to xpay has not yet occurred. Do not assume examples written for v26.06 or later use the same command behavior.
v26.06 pay is deprecated, and xpay transparently handles most pay invocations. Prefer the release-matched xpay documentation for new automation while interpreting older pay errors correctly.
After v27.03 The current reference says pay is removed. Use the supported replacement documented for the installed release; an old pay command may fail before any payment attempt is made.

The diagnostic RPCs still need release-matched documentation as well. A command name that exists on one installation may have different parameters or output details on another, so verify the local version before building scripts around a copied example.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

A complete incident runbook

  1. Record the identifier. Keep the invoice string or payment hash exactly as supplied to the node. It is the key used to correlate listpays, listsendpays, and listinvoices results.
  2. Run listpays. Classify the aggregate result as pending, complete, or failed. Stop calling it a failure if the result is still pending.
  3. Inspect listsendpays. Find every relevant part and attempt. More than one concurrent sendpay may be present, so inspect the records rather than selecting the first one by assumption.
  4. Wait for finality where appropriate. For an attempt created with sendpay, use waitsendpay. Mark a timeout as unresolved, not failed.
  5. Capture the failure object. Preserve the erring hop index, node, channel, and BOLT #4 failure code when returned. These fields identify where the route reported its problem.
  6. Query the invoice. Use listinvoices with the invoice string or payment hash. If the documented condition is invoice expiry (error 207), obtain a new invoice.
  7. Evaluate limits. If the documented condition is error 206, compare the required fee or delay with your configured limits before changing routes or policy.
  8. Evaluate route availability. If the documented condition is error 205 or a hop-level route failure, try supported route alternatives, including xpay where appropriate.
  9. Consider channel changes only for routing problems. Opening more channels can increase available routes, but it is not a remedy for invoice expiry or an over-limit payment.
  10. Verify the result again. Run listpays after the corrective action and retain the lower-level attempt details for the incident record.

Decision branches for common symptoms

“The command returned, but the payment is still pending.”

Use listpays to confirm the aggregate state, then inspect listsendpays. If the attempt was submitted with sendpay, use waitsendpay. A timeout does not supply the missing verdict; it means the payment has not yet definitively succeeded or failed.

“One attempt failed, but I see other parts.”

Do not stop at the first failed record. A payment can have multiple parts and concurrent attempts. Determine whether another part is pending or complete, then rely on the aggregate state from listpays for the payment-level conclusion.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

“The failure names a hop or channel.”

Record the hop index, node, channel, and BOLT #4 code. Treat the result as evidence about that route attempt. Use the code and location to decide whether trying another route is more appropriate than changing invoice or fee settings.

“Every retry reports that no route can be found.”

First confirm the invoice is current with listinvoices. If it is valid and the payment command reports error 205, investigate route availability. The FAQ recommends increasing channel availability as a general route-failure remedy and identifies xpay for iterating possible routes.

“The payment exceeds the fee or delay limit.”

Error 206 points to configured constraints. Check the required fee and delay against those limits. A different route may satisfy them; relaxing the limits is a policy decision, not an automatic troubleshooting step.

“The node says the invoice expired.”

Error 207 is an invoice-expiry condition. Stop retrying that invoice and request a fresh one. Route experimentation cannot make an expired invoice valid.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

“An old automation script no longer works.”

Check the installed Core Lightning release. The current reference deprecates pay in v26.06, says xpay handles most pay invocations from v26.06, and says pay is removed after v27.03. Update the script to the command and parameters documented for that release before interpreting the result as a network payment failure.

What not to conclude from a failed payment

  • A timeout is not a definitive failure.
  • A failed part is not automatically a failed aggregate payment.
  • A route failure at one hop does not prove that all routes are unavailable.
  • Error 205 (no route) is not the same condition as error 206 (fee or delay beyond limits).
  • Error 207 (invoice expiry) cannot be repaired by opening channels.
  • Opening more channels may improve route availability, but the FAQ presents it as a general option rather than a guaranteed fix for every payment.
  • An example written for one Core Lightning release may not be valid on another, especially during the pay-to-xpay transition.

Build a useful incident record

For each failed outgoing payment, retain the invoice string or payment hash, the aggregate state from listpays, the relevant parts and attempts from listsendpays, and the final response from waitsendpay when used. Add the invoice state from listinvoices and any documented error number. For route failures, preserve the hop index, node, channel, and BOLT #4 code together. This record lets you distinguish a repeated invoice problem from a repeated route problem without treating every retry as a new mystery.

Core Lightning payment-failure checklist

  • ☐ Query listpays by invoice string or payment hash.
  • ☐ Classify the payment as pending, complete, or failed.
  • ☐ Inspect all relevant parts and attempts with listsendpays.
  • ☐ Use waitsendpay for a sendpay attempt when a definitive result is needed.
  • ☐ Treat a timeout as unresolved rather than failed.
  • ☐ Capture the erring hop, node, channel, and BOLT #4 code.
  • ☐ Check invoice state with listinvoices.
  • ☐ Map error 207 to invoice expiry, 205 to inability to find a route, and 206 to fee or delay beyond configured limits.
  • ☐ Use release-matched documentation, especially around the pay and xpay transition.
  • ☐ Try route alternatives or consider additional channels only when the evidence points to routing.
  • ☐ Re-run listpays after the corrective action.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

BitcoinCLNCore LightningLightning Networknode operationsRPC troubleshooting

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.