Skip to content

Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.12.0 (dev) - #203

Open
renovate[bot] wants to merge 1 commit into
devfrom
renovate/dev-org.jetbrains.kotlinx-kotlinx-serialization-json-1.x
Open

renovate[bot] wants to merge 1 commit into
devfrom
renovate/dev-org.jetbrains.kotlinx-kotlinx-serialization-json-1.x

Conversation

@renovate

@renovate renovate Bot commented Jul 6, 2026 •

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Confidence
org.jetbrains.kotlinx:kotlinx-serialization-json 1.9.0 → 1.12.0 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

Kotlin/kotlinx.serialization (org.jetbrains.kotlinx:kotlinx-serialization-json)

v1.12.0

===================

This release is based on Kotlin 2.4.10 and contains all of the changes from 1.12.0-RC.

Additionally, it includes a fix removing unnecessary leading whitespaces from Proguard rules (#​3270),
and two changes stabilizing kotlin.uuid.Uuid serializer (#​3263) and kotlin.time.Instant serializers (#​3261).

For your convenience, the changelog for 1.12.0-RC is duplicated below:

API stabilization and deprecations

A big portion of the Json and Core APIs has been stabilized. Most important ones include:
@KeepGeneratedSerializer and @SerialInfo annotations, JsonNamingStrategy, and ContextualSerializer.
Additionally, various descriptor builders such as listDescriptor and JsonElementBuilder's addAll functions are also
stable and can be freely used. There is also one deprecation: ChunkedDecoder interface. Since there is no demand for
it, we plan to remove it in the future. See details in
the #​3238, #​3239,
and #​3216.

Also, kotlin.time.Instant and kotlin.uuid.Uuid serializers are no longer annotated with experimental annotations
from the Kotlin standard library (see [#​3261](#​3261
and #​3263)

Performance improvements

We also improved performance in various areas. ASCII-specific parser
(#​3225) brings performance of decoding from Okio and
kotlinx-io sources closer to decoding performance from
String. #​3220 makes decoding significantly faster in case
JsonElement present in your serializable classes.
And #​3248 should bring overall performance improvements
(up to 30%) on large strings.

Exceptions rework

We continue to improve exception handling in Json encoders and decoders.
#​3235 makes a big change around custom serializers and
@Serializable classes constructors:
from now on, every exception thrown during deserialization is wrapped by decoder into a JsonException. This way, it is
more predictable to write a catch and it is easier to understand what went wrong:
JsonDecodingException also includes context information such as Json path and input. Besides
that, #​3246 limits maximum nesting depth of Json
document, so you will get a proper JsonDecodingException instead of a random stack overflow error.

CBOR improvements

CBOR format also gets many improvements in this release. The most important one is memory optimization for
definitely-sized collections (#​3191, #​3192).

The others include:

  • Encode unsigned integer types as positive integers (#​3194) (thanks to Eyüp Can Akman)
  • Correctly decode CborLabel values (#​3195)
  • Include actual tag info into CborDecodingException (#​3197)

Protobuf improvements

Protocol buffers format received a big new feature: support for unknown fields. Using a new ProtoUnknownFieldHolder
class, you can now decode and store unknown fields in Protobuf messages to retransmit them back later. See documentation
updates and #​2860 for details. Big thanks
to xzk for theirs contributions:
this one and the bug with oneof default value (#​3147).

We've also fixed Protobuf schema generation for inlined value classes (#​3209).

Other improvements and bugfixes

  • Set Deprecated (HIDDEN) to setters in JsonConfiguration
  • Add Json nesting depth calculation during parsing (#​3246)
  • JsonElementBuilders: mark all (add|put)Json (Object|Array) functions as inline (#​3242) (thanks to Miha-x64)
  • Fix Polymorphic Deserialization Error with Subclass using JsonTransformingSerializer (#​3139) (thanks to YongJun Jung)
  • Align collections' SerialDescriptors with the contract (#​3199)
  • Remove leading whitespace from Proguard rules (#​3270)

v1.11.0

==================

This release is based on Kotlin 2.3.20 and provides new Json exceptions API and some bugfixes and improvements.

Expose Json exceptions structure

To make working with exceptions easier and providing proper error codes in e.g., REST APIs,
classes JsonException, JsonDecodingException, and JsonEncodingException are now public.
They have relevant public properties, such as shortMessage, path, offset, and others.
This API is currently experimental, and we're going to improve it further in the subsequent releases.
See the linked issues for the details: #​1930, #​1877.

Ability to hide user input from exception messages for security/privacy reasons.

Historically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.
Such behavior may pose additional challenges for logging, analytics, and other systems, since
a system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.
To address this issue, a new property exceptionsWithDebugInfo is added to JsonConfiguration.
Disable it to hide user input from exception messages.
IMPORTANT: This behavior will be enabled by default when this property becomes stable.
See #​2590 for more details.

Bugfixes and improvements

  • CBOR: Relax value range check when decoding numbers (#​3167)
  • Use a specialized writeDecimalLong method for IO stream integrations in Json (#​3152)

v1.10.0

==================

This release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.
The only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (#​3079).
Big thanks to KosmX for contributing the fix.

For your convenience, the changelog for 1.10.0-RC is duplicated below:

Stabilization of APIs

kotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.
The following APIs and configuration options are no longer experimental because they're widely used without any known major issues:

  • Json configuration options: decodeEnumsCaseInsensitive, allowTrailingComma, allowComments, and prettyPrintIndent. (#​3100)
  • @EncodeDefault annotation and its modes. (#​3106)
  • JsonUnquotedLiteral constructor function (#​2900)
  • JsonPrimitive constructor function overloads that accept unsigned types. (#​3117)
  • JSON DSL functions on JsonElement with Nothing? overloads. (#​3117)

Readiness for return value checker

Kotlin 2.3.0 introduces a new feature aimed
at helping you to catch bugs related to the accidentally ignored return value of the function.
kotlinx-serialization 1.10.0-RC code is fully marked for this feature, meaning that you
can get warnings for unused function calls like Json.encodeToString(...).
To get the warnings, the feature has to be enabled in your project as described here.

Polymorphism improvements

Polymorphic serialization received a couple of improvements in this release:

New subclassesOfSealed utility to automatically register sealed subclasses serializers in polymorphic modules (#​2201).
Use it in your SerializersModule when configuring a polymorphic hierarchy which contains both abstract and sealed classes.
For example, when root of your hierarchy is an interface, but most of your inheritors are sealed classes.
The new function will register all known sealed subclasses for you, so you don’t need to list them one by one.
This makes writing your SerializerModules much faster and simpler.
Big thanks to Paul de Vrieze for contributing this feature.

Class discriminator conflict check rework (#​3105).
If a payload already contains a property with the same name as the configured discriminator (for example, type),
it is called a class discriminator conflict.
To produce a correct output and allow more inputs to be deserialized at the same time, the following changes were made:

  • Conflicts introduced by JsonNamingStrategy transformations are now detected during serialization as well and will cause SerializationException.
    It also affects non-polymorphic classes.
  • Conflicts from ClassDisciminatorMode.ALL_JSON_OBJECTS and SerializersModuleBuilder.polymorphicDefaultSerializer are also detected.
  • It is allowed to deserialize such a conflicting key for both sealed and open polymorphic hierarchies.
    Previously, it was possible in the sealed hierarchies alone due to missing assertion. See #​1664 for details.

General improvements

  • Add .serialName to MissingFieldException for clearer diagnostics. (#​3114)
  • Generate unique Automatic-Module-Name entries for metadata JARs. (#​3109)
  • Revised ProGuard rules and added R8 tests. (#​3041)
  • CBOR: Improved error message when a byte string/array type mismatch is encountered. (#​3052)

Bugfixes

  • Fix the type in the BIGNUM_NEGATIVE tag name. (#​3090)
  • CBOR: Fix various bugs in the decoder implementation to be more strict and consistent with the specification.

Configuration

📅 Schedule: (in timezone Europe/Warsaw)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Jul 6, 2026
@renovate renovate Bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.10.0 (dev) Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.11.0 (dev) Jul 10, 2026
@renovate
renovate Bot force-pushed the renovate/dev-org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from c39b229 to 5242c70 Compare July 10, 2026 09:44
@renovate
renovate Bot force-pushed the renovate/dev-org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch 2 times, most recently from 60d1475 to 341bc7c Compare August 21, 2026 11:41
@renovate
renovate Bot force-pushed the renovate/dev-org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from 341bc7c to caa0349 Compare August 28, 2026 11:56
@renovate
renovate Bot force-pushed the renovate/dev-org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from caa0349 to 6dccfdd Compare September 8, 2026 12:18
@renovate
renovate Bot force-pushed the renovate/dev-org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from 6dccfdd to e98e29d Compare September 16, 2026 11:54
@renovate
renovate Bot force-pushed the renovate/dev-org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from e98e29d to 14db338 Compare October 14, 2026 12:30
@renovate renovate Bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.11.0 (dev) Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.12.0 (dev) Oct 21, 2026
@renovate
renovate Bot force-pushed the renovate/dev-org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from 14db338 to 38bea67 Compare October 21, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants