# Patch Package OTP 28.5 Released

**URL:** <https://erlangforums.com/t/patch-package-otp-28-5-released/5570>\
**Category:** Erlang News\
**Tags:** erlang-release\
**Created:** [April 23, 2026, 3:28pm UTC](https://erlangforums.com/t/patch-package-otp-28-5-released/5570 "2026-04-23T15:28:02Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![rickard](https://erlangforums.com/user_avatar/erlangforums.com/rickard/32/184_2.png) [@rickard](https://erlangforums.com/u/rickard)\
**Post date:** [April 23, 2026, 3:28pm UTC](https://erlangforums.com/t/patch-package-otp-28-5-released/5570/1 "2026-04-23T15:28:02Z")

</div>

```erlang
Patch Package: OTP 28.5
Git Tag: OTP-28.5
Date: 2026-04-23
Trouble Report Id: OTP-16607, OTP-19162, OTP-19967, OTP-20038,
                         OTP-20043, OTP-20082, OTP-20094, OTP-20098,
                         OTP-20101, OTP-20106
Seq num: GH-10667, GH-10812, GH-10915, GH-10967,
                         OTP-16608, PR-10431, PR-10881, PR-10908,
                         PR-10924, PR-10957, PR-10976, PR-11002,
                         PR-11045
System: OTP
Release: 28
Application: erl_interface-5.7, erts-16.4, mnesia-4.25.3,
                         ssl-11.6
Predecessor: OTP 28.4.3

```

Check out the git tag OTP-28.5, and build a full OTP system including  
documentation. Apply one or more applications from this build as patches to your  
installation using the ‘otp\_patch\_apply’ tool. For information on install  
requirements, see descriptions for each application version below.

# HIGHLIGHTS

- There is a new “Secure Coding Guidelines” document in [Design Principles](https://www.erlang.org/doc/system/design_principles.html)  
describing how to write secure Erlang code.

# OTP-28.5

## Improvements and New Features

- There is a new “Secure Coding Guidelines” document in [Design Principles](https://www.erlang.org/doc/system/design_principles.html)  
describing how to write secure Erlang code.

# erl\_interface-5.7

The erl\_interface-5.7 application can be applied independently of other  
applications on a full OTP 28 installation.

## Improvements and New Features

- A new `configure` option [`--{enable,disable}-use-embedded-3pp-alternatives`](https://erlang.org/doc/system/install.html#advanced-configuration-and-build-of-erlang-otp_configuring)  
has been added. When _enabled_, `configure` is forced to find alternatives, to  
a subset, of the embedded third-party products (_3pps_) in the runtime system,  
and when _disabled_, `configure` will use all internal embedded 3pps.  
Currently this option affects `zstd`, `zlib`, `ryu` (with `STL`), `openssl`  
and `tcl`. The default is to use all built-in embedded 3pps except for `zlib`  
which by default will use `zlib` on the OS if available.

## Known Bugs and Problems

- The `ei` API for decoding/encoding terms is not fully 64-bit compatible since  
terms that have a representation on the external term format larger than 2 GB  
cannot be handled.

# erts-16.4

The erts-16.4 application can be applied independently of other applications on  
a full OTP 28 installation.

## Fixed Bugs and Malfunctions

- Fixed bug in `enif_make_map_from_arrays` for arrays with at least 33 keys. If  
duplicate keys existed, instead of failing, it would skip the duplicates. If  
less than 33 unique keys existed, an internally inconsistent and broken map  
was returned.

- Fixed an issue when supplying the args\_file option to erl.exe on windows that  
did not handle unicode characters correctly.

## Improvements and New Features

- A new `configure` option [`--{enable,disable}-use-embedded-3pp-alternatives`](https://erlang.org/doc/system/install.html#advanced-configuration-and-build-of-erlang-otp_configuring)  
has been added. When _enabled_, `configure` is forced to find alternatives, to  
a subset, of the embedded third-party products (_3pps_) in the runtime system,  
and when _disabled_, `configure` will use all internal embedded 3pps.  
Currently this option affects `zstd`, `zlib`, `ryu` (with `STL`), `openssl`  
and `tcl`. The default is to use all built-in embedded 3pps except for `zlib`  
which by default will use `zlib` on the OS if available.

> #### Full runtime dependencies of erts-16.4
> 
> kernel-9.0, sasl-3.3, stdlib-4.1

# mnesia-4.25.3

The mnesia-4.25.3 application can be applied independently of other applications  
on a full OTP 28 installation.

## Fixed Bugs and Malfunctions

- Added documentation for `user_properties` and functions  
`read_table_property/2`, `write_table_property/2`, `delete_table_property`.  
Enhanced documentation for `frag_properties`.

- Fixed a bug where stacktrace was not returned from `mnesia:transaction/1` when  
transaction aborts with an error exception.

> #### Full runtime dependencies of mnesia-4.25.3
> 
> erts-9.0, kernel-5.3, stdlib-5.0

# ssl-11.6

Note! The ssl-11.6 application _cannot_ be applied independently of other  
applications on an arbitrary OTP 28 installation.

```erlang
   On a full OTP 28 installation, also the following runtime
   dependencies have to be satisfied:
   -- crypto-5.8 (first satisfied in OTP 28.3)
   -- public_key-1.20.3 (first satisfied in OTP 28.4.2)

```

## Fixed Bugs and Malfunctions

- Preserve inet option order, as inet\_backend option must be first option. Will  
make inet\_backend option work for ssl independently of number of inet supplied  
options.

- Missing conformance check for signature algorithms in TLS-1.3 could cause  
selection of incompatible certificate when a server is configured with more  
than one possible certificate.

## Improvements and New Features

- Avoid unnecessary memory consumption for temporary processes in a supervision  
tree.

> #### Full runtime dependencies of ssl-11.6
> 
> crypto-5.8, erts-16.0, inets-5.10.7, kernel-10.3, public\_key-1.20.3,  
> runtime\_tools-1.15.1, stdlib-7.0

# Thanks to

felipe stival, Hewwho, Hugo Baraúna, Nick Vatamaniuc, Viktor Söderqvist, William  
Yang

---

<div class="post-metadata">

**Author:** ![zabrane](https://erlangforums.com/letter_avatar_proxy/v4/letter/z/7ba0ec/32.png) [@zabrane](https://erlangforums.com/u/zabrane)\
**Post date:** [April 28, 2026, 5:18pm UTC](https://erlangforums.com/t/patch-package-otp-28-5-released/5570/3 "2026-04-28T17:18:50Z")

</div>

We’ve migrated our product to 28.5 today. No issue at all.  
Thanks and well done to OTP team.
