diff --git a/src/ripple/app/paths/impl/StrandFlow.h b/src/ripple/app/paths/impl/StrandFlow.h index 2df496d8311..6aab2c15210 100644 --- a/src/ripple/app/paths/impl/StrandFlow.h +++ b/src/ripple/app/paths/impl/StrandFlow.h @@ -841,6 +841,11 @@ flow( // point. // assert(0); + JLOG(j.fatal()) << "Skipping assert: Mismatch in total flow: " + << "actualOut: " << to_string(actualOut) + << " outReq: " << to_string(outReq) << " " + << (flowDebugInfo ? flowDebugInfo->to_string(true) + : "no flowDebugInfo"); return {tefEXCEPTION, std::move(ofrsToRmOnFail)}; } if (!partialPayment) diff --git a/src/ripple/ledger/impl/View.cpp b/src/ripple/ledger/impl/View.cpp index b71b4f39e5e..038d52d5e08 100644 --- a/src/ripple/ledger/impl/View.cpp +++ b/src/ripple/ledger/impl/View.cpp @@ -1156,7 +1156,13 @@ accountSend( } else { - assert(saAmount >= beast::zero); + // assert(saAmount >= beast::zero); + if (saAmount < beast::zero) + { + JLOG(j.fatal()) << "Skipping assert: saAmount < 0" << saAmount; + // Note that since there's no amendment, this will cause a desync + return tecINTERNAL; + } } /* If we aren't sending anything or if the sender is the same as the