Skip to content

Commit 92230d7

Browse files
authored
Merge pull request #3385 from XRPLF/rippled-2.6.2
Rippled 2.6.2
2 parents cac56c3 + 30c6a42 commit 92230d7

File tree

10 files changed

+102
-14
lines changed

10 files changed

+102
-14
lines changed

blog/2025/rippled-2.6.2.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
category: 2025
3+
date: "2025-11-19"
4+
template: '../../@theme/templates/blogpost'
5+
seo:
6+
title: Introducing XRP Ledger version 2.6.2
7+
description: rippled version 2.6.2 is now available. This version contains a new amendment and a critical bug fix.
8+
labels:
9+
- rippled Release Notes
10+
markdown:
11+
editPage:
12+
hide: true
13+
---
14+
# Introducing XRP Ledger version 2.6.2
15+
16+
Version 2.6.2 of `rippled`, the reference server implementation of the XRP Ledger protocol, is now available. This release adds a new `fixDirectoryLimit` amendment and a critical bug fix.
17+
18+
19+
## Action Required
20+
21+
If you run an XRP Ledger server, upgrade to version 2.6.2 as soon as possible to ensure service continuity.
22+
23+
24+
## Install / Upgrade
25+
26+
On supported platforms, see the [instructions on installing or updating `rippled`](../../docs/infrastructure/installation/index.md).
27+
28+
| Package | SHA-256 |
29+
|:--------|:--------|
30+
| [RPM for Red Hat / CentOS (x86-64)](https://repos.ripple.com/repos/rippled-rpm/stable/rippled-2.6.2-1.el9.x86_64.rpm) | `e3b041906a75c3c52cc6423219d7ba9c199a5d736d2e3978a5ce0ac5ef693fdf` |
31+
| [DEB for Ubuntu / Debian (x86-64)](https://repos.ripple.com/repos/rippled-deb/pool/stable/rippled_2.6.2-1_amd64.deb) | `0887b5a77c43c362ea7680b83df40b955a5748b712924acf2212b2de29e3373b` |
32+
33+
For other platforms, please [build from source](https://github.com/XRPLF/rippled/blob/master/BUILD.md). The most recent commit in the git log should be the change setting the version:
34+
35+
```text
36+
commit df24ee077438e03673a9c6661c41e8f070b90cd9
37+
Author: Vladislav Vysokikh <vvysokikh@gmail.com>
38+
Date: Tue Nov 18 09:28:59 2025 +0000
39+
40+
Version 2.6.2
41+
```
42+
43+
44+
## Full Changelog
45+
46+
### Amendments
47+
48+
The following amendment is open for voting with this release:
49+
50+
- **fixDirectoryLimit** - Removes directory page limits. Object reserve requirements provide enough incentive to avoid creating unnecessary objects on the XRP Ledger. ([#5935](https://github.com/XRPLF/rippled/pull/5935))
51+
52+
### Bug Fixes
53+
54+
- Fixed an assertion failure when all the inner transactions of a `Batch` transaction were invalid. ([#5670](https://github.com/XRPLF/rippled/pull/5670))
55+
56+
57+
## Credits
58+
59+
The following GitHub users contributed to this release:
60+
61+
- RippleX Engineering
62+
- RippleX Docs
63+
- RippleX Product
64+
65+
66+
## Bug Bounties and Responsible Disclosures
67+
68+
We welcome reviews of the `rippled` code and urge researchers to responsibly disclose any issues they may find.
69+
70+
To report a bug, please send a detailed report to: <bugs@xrpl.org>

blog/sidebars.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- group: '2025'
1111
expanded: false
1212
items:
13+
- page: 2025/rippled-2.6.2.md
1314
- page: 2025/rippled-2.6.1.md
1415
- page: 2025/vulnerabilitydisclosurereport-bug-sep2025.md
1516
- page: 2025/devnet-reset-oct.md

docs/references/protocol/transactions/transaction-results/tec-codes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ A transaction that fails with a `tec` code destroys the XRP paid as a [transacti
2727
| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 157 | The transaction tried to accept an offer that was placed by the same account to buy or sell a [non-fungible token](../../../../concepts/tokens/nfts/index.md). {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} |
2828
| `tecCLAIM` | 100 | Unspecified failure, with transaction cost destroyed. |
2929
| `tecCRYPTOCONDITION_ERROR` | 146 | This [EscrowCreate][] or [EscrowFinish][] transaction contained a malformed or mismatched crypto-condition. |
30-
| `tecDIR_FULL` | 121 | The transaction tried to add an object (such as a trust line, Check, Escrow, or Payment Channel) to an account's owner directory, but that account cannot own any more objects in the ledger. |
30+
| `tecDIR_FULL` | 121 | The transaction tried to add an object (such as a trust line, Check, Escrow, or Payment Channel) to an account's owner directory, but that account cannot own any more objects in the ledger.<br>This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. |
3131
| `tecDUPLICATE` | 149 | The transaction tried to create an object (such as a [DepositPreauth][] authorization) that already exists. |
3232
| `tecDST_TAG_NEEDED` | 143 | The [Payment transaction][] omitted a [destination tag](../../../../concepts/transactions/source-and-destination-tags.md), but the destination account has the `lsfRequireDestTag` flag enabled. |
3333
| `tecEMPTY_DID` | 187 | The transaction tried to create a [DID entry][] with no contents. A DID must not be empty. {% amendment-disclaimer name="DID" /%} |

docs/references/protocol/transactions/types/checkcreate.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,18 @@ Create an on-ledger [check](../../../../concepts/payment-types/checks.md), which
4040

4141
## Error Cases
4242

43-
- If the `Destination` account is blocking incoming Checks, the transaction fails with the result code `tecNO_PERMISSION`. {% amendment-disclaimer name="DisallowIncoming" /%}
44-
- If the `Destination` is the sender of the transaction, the transaction fails with the result code `temREDUNDANT`.
45-
- If the `Destination` [account](../../../../concepts/accounts/index.md) does not exist in the ledger, the transaction fails with the result code `tecNO_DST`.
46-
- If the `Destination` account has the `RequireDest` flag enabled but the transaction does not include a `DestinationTag` field, the transaction fails with the result code `tecDST_TAG_NEEDED`.
47-
- If `SendMax` specifies a token which is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md), the transaction fails with the result `tecFROZEN`.
48-
- If the `Expiration` of the transaction is in the past, the transaction fails with the result `tecEXPIRED`.
49-
- If the sender does not have enough XRP to meet the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) after adding the Check, the transaction fails with the result `tecINSUFFICIENT_RESERVE`.
50-
- If either the sender or the destination of the Check cannot own more objects in the ledger, the transaction fails with the result `tecDIR_FULL`.
43+
Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md):
44+
45+
| Error Code | Description |
46+
|:-----------|:------------|
47+
| `tecNO_PERMISSION` | The `Destination` account is blocking incoming Checks. {% amendment-disclaimer name="DisallowIncoming" /%} |
48+
| `temREDUNDANT` | The `Destination` is the sender of the transaction. |
49+
| `tecNO_DST` | The `Destination` [account](../../../../concepts/accounts/index.md) does not exist in the ledger. |
50+
| `tecDST_TAG_NEEDED` | The `Destination` account has the `RequireDest` flag enabled but the transaction does not include a `DestinationTag` field. |
51+
| `tecFROZEN` | `SendMax` specifies a token which is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). |
52+
| `tecEXPIRED` | The `Expiration` of the transaction is in the past. |
53+
| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) after adding the Check. |
54+
| `tecDIR_FULL` | Either the sender or the destination of the Check cannot own more objects in the ledger.<br>This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. |
5155

5256
## See Also
5357

docs/references/protocol/transactions/types/delegateset.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Besides errors that can occur for all transactions, {% $frontmatter.seo.title %}
6565

6666
| Error Code | Description |
6767
|:--------------------------|:------------|
68-
| `tecDIR_FULL` | The sender owns too many items in the ledger already. |
68+
| `tecDIR_FULL` | The sender owns too many items in the ledger already.<br>This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. |
6969
| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [reserve requirement](/docs/concepts/accounts/reserves.md) of creating a new Delegate ledger entry. |
7070
| `tecNO_PERMISSION` | At least one permission in the `Permissions` list is not delegatable. See [Permission Values](../../data-types/permission-values.md) for which permissions are not delegatable. |
7171
| `tecNO_TARGET` | The account specified in the `Authorize` field does not exist in the ledger. |

docs/references/protocol/transactions/types/nftokencreateoffer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Besides errors that can occur for all transactions, {% $frontmatter.seo.title %}
5656
| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. |
5757
| `temBAD_AMOUNT` | The `Amount` field is not valid. For example, the amount was zero for a buy offer, or the amount is denominated in fungible tokens but the `NFToken` has the [`lsfOnlyXRP` flag](../../data-types/nftoken.md#nftoken-flags) enabled. |
5858
| `temBAD_EXPIRATION` | The specified `Expiration` time is invalid (for example, `0`). |
59-
| `tecDIR_FULL` | The sender already owns too many objects in the ledger, or there are already too many offers to buy or sell this token. |
59+
| `tecDIR_FULL` | The sender already owns too many objects in the ledger, or there are already too many offers to buy or sell this token.<br>This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. |
6060
| `tecEXPIRED` | The specified `Expiration` time has already passed. |
6161
| `tecFROZEN` | The `Amount` is denominated in fungible tokens, but one of the trust lines that would receive tokens from this offer is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). This could be the seller's trust line or the `NFToken`'s issuer's trust line (if the `NFToken` has a transfer fee). |
6262
| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [reserve requirement](../../../../concepts/accounts/reserves.md) after placing this offer. |

docs/references/protocol/transactions/types/offercreate.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Transactions of the OfferCreate type support additional values in the [`Flags` f
5858

5959
| Error Code | Description |
6060
|:-------------------------|:--------------------------------------------------|
61-
| `tecDIR_FULL` | The owner owns too many items in the ledger, or the order book contains too many Offers at the same exchange rate already. |
61+
| `tecDIR_FULL` | The owner owns too many items in the ledger, or the order book contains too many Offers at the same exchange rate already.<br>This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. |
6262
| `tecEXPIRED` | The transaction specifies an `Expiration` time that has already passed. |
6363
| `tecFROZEN` | The transaction involves a token on a [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) trust line (including local and global freezes). The `TakerPays` (buy amount) token has been deep-frozen by the issuer. |
6464
| `tecINSUF_RESERVE_OFFER` | The owner does not have enough XRP to meet the reserve requirement of adding a new offer ledger entry, and the transaction did not convert any currency. (If the transaction successfully traded any amount, the transaction succeeds with the result code `tesSUCCESS`, but does not create an offer ledger entry for the remainder.) |

docs/references/protocol/transactions/types/permissioneddomainset.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Besides errors that can occur for all transactions, {% $frontmatter.seo.title %}
5555

5656
| Error Code | Description |
5757
|:--------------------------|:------------|
58-
| `tecDIR_FULL` | The transaction would create a new PermissionedDomain, but the sender's owner directory is full. |
58+
| `tecDIR_FULL` | The transaction would create a new PermissionedDomain, but the sender's owner directory is full.<br>This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. |
5959
| `tecINSUFFICIENT_RESERVE` | The transaction would create a new PermissionedDomain, but the sender does not have enough XRP to meet the increased owner reserve. |
6060
| `tecNO_ENTRY` | The transaction attempted to modify a Domain that does not exist. Check the `DomainID` field of the transaction. |
6161
| `tecNO_ISSUER` | At least one of the issuers specified in the `AcceptedCredentials` field is does not exist in the XRP Ledger. Check the `Issuer` field of each member of the array. |

docs/references/protocol/transactions/types/ticketcreate.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Besides errors that can occur for all transactions, {% $frontmatter.seo.title %}
4343
| Error Code | Description |
4444
|:--------------------------|:-------------------------------------------------|
4545
| `temINVALID_COUNT` | The `TicketCount` field is invalid. It must be an integer from 1 to 250. |
46-
| `tecDIR_FULL` | This transaction would cause the account to own more than the limit of 250 Tickets at a time, or more than the maximum number of ledger objects in general. |
46+
| `tecDIR_FULL` | This transaction would cause the account to own more than the limit of 250 Tickets at a time, or more than the maximum number of ledger objects in general.<br>The maximum ledger objects error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. |
4747
| `tecINSUFFICIENT_RESERVE` | The sending account does not have enough XRP to meet the [owner reserve](../../../../concepts/accounts/reserves.md) of all the requested Tickets. |
4848

4949
## See Also

resources/known-amendments.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -742,6 +742,19 @@ Changes the way Checks transactions affect account metadata, so that Checks are
742742
Without this amendment, Checks transactions ([CheckCreate][], [CheckCash][], and [CheckCancel][]) only update the account history of the sender. With this amendment, those transactions affect both the sending and receiving accounts. This amendment has no effect unless the [Checks amendment](#checks) is also enabled.
743743

744744

745+
### fixDirectoryLimit
746+
[fixDirectoryLimit]: #fixdirectorylimit
747+
748+
| Amendment | fixdirectorylimit |
749+
|:-------------|:----------------------|
750+
| Amendment ID | 41765F664A8D67FF03DDB1C1A893DE6273690BA340A6C2B07C8D29D0DD013D3A |
751+
| Status | Open for Voting |
752+
| Default Vote (Latest stable release) | No |
753+
| Pre-amendment functionality retired? | No |
754+
755+
This amendment removes the directory page limit. Object reserve requirements provide enough incentive to avoid creating unnecessary objects on the XRP Ledger.
756+
757+
745758
### fixDisallowIncomingV1
746759
[fixDisallowIncomingV1]: #fixdisallowincomingv1
747760

0 commit comments

Comments
 (0)