<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Release notes | PingDirectory</title>
        <link>https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html</link>
        <description>Release notes</description>
        <lastBuildDate>Tue, 30 Jun 2026 21:21:36 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <ttl>5</ttl>
        <copyright>Copyright 2026 Ping Identity. All rights reserved.</copyright>
        <item>
            <title><![CDATA[PingDirectory suite of products 11.1.0.0 (June 2026)]]></title>
            <link>https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#pingdirectory-suite-of-products-11-1-0-0-june-2026</link>
            <guid isPermaLink="false">https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#pingdirectory-suite-of-products-11-1-0-0-june-2026</guid>
            <pubDate>Tue, 30 Jun 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[

<div class="sectionbody">
<div class="sect2">
<h3 id="added-runtime-support-for-java-25"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#added-runtime-support-for-java-25"></a>Added runtime support for Java 25</h3>
<div class="paragraph">
<p><span class="ping_changetype-new">New</span>
<span class="ping_ticket">DS-50713</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We added JRE support for Oracle JDK 25 and OpenJDK 25.</p>
</div>
<div class="admonitionblock important">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Consult the <a href="https://docs.pingidentity.com/pingdirectory/installing_the_pingdirectory_suite_of_products/pd_proxy_sync_upgrade_considerations.html" class="xref page">upgrade considerations</a> for Java-related actions you must take when upgrading to Java 25.</p>
</div>
</td>
</tr>
</tbody></table>
</div>
</div>
<div class="sect2">
<h3 id="added-smtp-bearer-access-token-authentication"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#added-smtp-bearer-access-token-authentication"></a>Added SMTP bearer access token authentication</h3>
<div class="paragraph">
<p><span class="ping_changetype-new">New</span>
<span class="ping_ticket">DS-48730</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>The server now supports SMTP authentication by bearer access token. You can obtain a token through the OAuth 2.0 client credentials flow or configure a static token. Learn more in <a href="https://docs.pingidentity.com/pingdirectory/pingdirectory_server_administration_guide/pd_ds_smtp_acct_status_notif_handler.html" class="xref page">Working with the SMTP Account Status Notification Handler</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="added-scheduled-data-cleanup-tasks"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#added-scheduled-data-cleanup-tasks"></a>Added scheduled data cleanup tasks</h3>
<div class="paragraph">
<p><span class="ping_changetype-new">New</span>
<span class="ping_ticket">DS-51377</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We added new single-run and recurring tasks that enable you to schedule server data cleanup, including PingFederate sessions and access grants.</p>
</div>
<div class="paragraph">
<p>The existing purge expired data plugin runs on a fixed 24-hour schedule from server startup, making it difficult to guarantee that large purge jobs run during a planned maintenance window. These new tasks allow you to reliably schedule purge operations so they don’t run during peak business hours after an unexpected server restart or deployment.</p>
</div>
</div>
<div class="sect2">
<h3 id="added-log-mode-for-rate-limiting-operations"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#added-log-mode-for-rate-limiting-operations"></a>Added log mode for rate-limiting operations</h3>
<div class="paragraph">
<p><span class="ping_changetype-new">New</span>
<span class="ping_ticket">DS-50863</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>To help tune rate-limiting operations and identify unusual client activity, you can now allow operations to exceed the configured per-connection and per-policy operation rates in a log mode. The server adds information about the client connections that exceed those rates to the error log.</p>
</div>
<div class="paragraph">
<p>Learn more in the configuration documentation included with the server for the Client Connection Policy properties <code class="codeph">connection-operation-rate-exceeded-behavior</code> and <code class="codeph">policy-operation-rate-exceeded-behavior</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="added-a-kafka-sync-source"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#added-a-kafka-sync-source"></a>Added a Kafka sync source</h3>
<div class="paragraph">
<p><span class="ping_changetype-new">New</span>
<span class="ping_ticket">DS-51133, DS-51297, DS-51301</span>
<span class="ping_product">PingDataSync</span>
<span class="ping_status-preview">Preview</span></p>
</div>
<div class="paragraph">
<p>We added a Kafka sync source, which you can use to apply changes published in a Kafka topic to a sync destination. Learn more in <a href="https://docs.pingidentity.com/pingdirectory/pingdatasync_server_administration_guide/pd_sync_with_apache_kafka.html" class="xref page">Synchronize with Apache Kafka</a>.</p>
</div>
<div class="paragraph">
<p>As part of this implementation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>We added the <code class="codeph">consumer-property</code> and <code class="codeph">sensitive-consumer-property</code> configuration parameters to Kafka cluster external servers. These parameters enable passing standard and sensitive configuration properties to the Kafka consumer on the PingDataSync server.</p>
</li>
<li>
<p>We added the JSON sync operation mapping configuration, which allows a Kafka sync source to map arbitrary JSON messages to a sync operation.</p>
</li>
</ul>
</div>
<div class="admonitionblock warning">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>This feature is provided as a <strong class="uicontrol">Preview</strong>, which means that it isn’t supported and should not be used in production environments. Learn more in <a href="https://docs.pingidentity.com/pingdirectory/feature_status.html" class="xref page">Feature statuses</a>.</p>
</div>
</td>
</tr>
</tbody></table>
</div>
</div>
<div class="sect2">
<h3 id="updated-the-password-sync-agent-to-version-4-9"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#updated-the-password-sync-agent-to-version-4-9"></a>Updated the Password Sync Agent to version 4.9</h3>
<div class="paragraph">
<p><span class="ping_changetype-new">New</span>
<span class="ping_ticket">DS-44517</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We updated the Password Sync Agent (PSA) to version 4.9.</p>
</div>
</div>
<div class="sect2">
<h3 id="added-certificate-trust-configuration-for-the-psa"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#added-certificate-trust-configuration-for-the-psa"></a>Added certificate trust configuration for the PSA</h3>
<div class="paragraph">
<p><span class="ping_changetype-new">New</span>
<span class="ping_ticket">DS-44517</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>You can now configure the PSA to either trust all certificates presented by the PingDataSync server or to use the Windows Certificate Authority for validation.</p>
</div>
</div>
<div class="sect2">
<h3 id="improved-connection-asymmetry-alarm-visibility"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#improved-connection-asymmetry-alarm-visibility"></a>Improved connection-asymmetry alarm visibility</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-49225</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>You can now quickly identify peers causing topology connection-asymmetry alarms. The mirrored subtree manager monitor entry automatically includes the <code class="codeph">peer-inbound-only</code> and <code class="codeph">peer-outbound-only</code> attributes if any servers appear in only the inbound or outbound connection set. Connection-asymmetry alarm messages include the names of the peers involved.</p>
</div>
</div>
<div class="sect2">
<h3 id="improved-server-startup-time-on-linux"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#improved-server-startup-time-on-linux"></a>Improved server startup time on Linux</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-50645</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>To reduce server startup time when you run <code class="cmdname"><strong>start-server</strong></code>, we reduced the number of Java processes that get created before starting the server. This change applies to Linux only and is enabled by default.</p>
</div>
<div class="admonitionblock important">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
<div class="paragraph">
<p>In deployments that run multiple server instances per node, parallel server startups can increase short-term CPU load, because JVM initialization occurs at the same time across instances. This effect might be more pronounced with this improvement enabled.</p>
</div>
<div class="paragraph">
<p>To revert to the prior behavior, set the environment variable <code class="parmname">UNBOUNDID_FAST_START</code> to <code class="codeph">false</code>.</p>
</div>
</td>
</tr>
</tbody></table>
</div>
</div>
<div class="sect2">
<h3 id="improved-composite-index-selection-for-substring-filters"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#improved-composite-index-selection-for-substring-filters"></a>Improved composite index selection for substring filters</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-50820, DS-51183</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We improved the logic the server uses to prioritize composite index usage when evaluating substring filters.</p>
</div>
</div>
<div class="sect2">
<h3 id="improved-prometheus-metric-family-grouping"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#improved-prometheus-metric-family-grouping"></a>Improved Prometheus metric family grouping</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-51115</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>The Prometheus Monitoring HTTP Servlet Extension now groups metrics with the same name under common <code class="codeph">HELP</code> and <code class="codeph">TYPE</code> headers, more closely following the standard for annotating metric families in Prometheus.</p>
</div>
</div>
<div class="sect2">
<h3 id="made-allow-upgrading-to-composite-index-editable-on-existing-indexes"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#made-allow-upgrading-to-composite-index-editable-on-existing-indexes"></a>Made <code class="codeph">allow-upgrading-to-composite-index</code> editable on existing indexes</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-51180</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>You can use the <code class="codeph">allow-upgrading-to-composite-index</code> property, in the attribute index configuration, to specify whether the server should store an attribute index in its legacy form or update it to use a composite index behind the scenes.</p>
</div>
<div class="paragraph">
<p>Previously, this property was declared as read-only, and you could only specify its value when creating a new attribute index. Now, you can edit the property for existing indexes, although the server continues to maintain the index in its current form until you export the data to LDIF and re-import it.</p>
</div>
<div class="paragraph">
<p>Composite indexes are more scalable and versatile than legacy attribute indexes, although there could be cases where the server exhibits better performance for attribute indexes stored in the legacy format.</p>
</div>
</div>
<div class="sect2">
<h3 id="added-detection-for-deleted-recovered-active-directory-entries"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#added-detection-for-deleted-recovered-active-directory-entries"></a>Added detection for deleted recovered Active Directory entries</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-50203</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>PingDataSync now detects when recovered Active Directory entries get deleted.</p>
</div>
</div>
<div class="sect2">
<h3 id="improved-deep-json-field-support-in-constructed-attribute-mappings"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#improved-deep-json-field-support-in-constructed-attribute-mappings"></a>Improved deep JSON field support in constructed attribute mappings</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-51186</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>You can now reference JSON fields that are multiple levels deep when building constructed attribute mappings.</p>
</div>
<div class="paragraph">
<p>For example, suppose an organization stores all user contact information in a JSON object in the <code class="codeph">contact</code> attribute. This might result in a deeply nested path to the user’s email address. With this change, you can extract that email value by referencing something like <code class="codeph">{contact.ubidEmailJSON.value}</code> in the <code class="codeph">value-pattern</code> parameter.</p>
</div>
<div class="paragraph">
<p>This change also adds support for automatically expanding intermediate JSON arrays in the path. Intermediate JSON arrays produce multiple values in the expected way.</p>
</div>
<div class="admonitionblock note">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>This enhancement doesn’t change the constructed attribute mapping behavior for JSON attribute field keys that contain a dot. When there’s ambiguity as to whether a dot is part of a field name or a separator between field names, the parser interprets the dot as part of the field name.</p>
</div>
</td>
</tr>
</tbody></table>
</div>
</div>
<div class="sect2">
<h3 id="improved-schema-element-registration-error-messages"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#improved-schema-element-registration-error-messages"></a>Improved schema element registration error messages</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-51300</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy</span></p>
</div>
<div class="paragraph">
<p>We clarified and enhanced the error messages displayed when schema elements can’t be registered with the schema.</p>
</div>
</div>
<div class="sect2">
<h3 id="improved-access-control-rule-parsing-and-validation"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#improved-access-control-rule-parsing-and-validation"></a>Improved access control rule parsing and validation</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-51399</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We added a new mechanism for parsing and validating access control rules. The new parser runs alongside the existing one and might help identify problematic ACIs and provide more useful error messages for malformed rules.</p>
</div>
<div class="paragraph">
<p>All currently valid ACIs continue to be accepted and operate as before. The server raises an administrative alert upon encountering any ACIs not supported by the new parser.</p>
</div>
<div class="admonitionblock important">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
<div class="paragraph">
<p>We plan to remove the existing parser in a future release. At that time, ACIs flagged by the new parser won’t be permitted.</p>
</div>
</td>
</tr>
</tbody></table>
</div>
</div>
<div class="sect2">
<h3 id="improved-verify-index-schema-consistency-detection"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#improved-verify-index-schema-consistency-detection"></a>Improved <code class="cmdname"><strong>verify-index</strong></code> schema consistency detection</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-51409</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>The <code class="cmdname"><strong>verify-index</strong></code> tool now checks for entries whose DN2ID index key can’t be found because an attribute syntax or matching rule was altered after the entry was created.</p>
</div>
<div class="admonitionblock important">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Altering the schema definition of an attribute syntax or matching rule might cause existing entries to become inaccessible through LDAP search until the backend contents are exported to LDIF and re-imported.</p>
</div>
</td>
</tr>
</tbody></table>
</div>
</div>
<div class="sect2">
<h3 id="added-alerts-for-ldap-schema-element-changes"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#added-alerts-for-ldap-schema-element-changes"></a>Added alerts for LDAP schema element changes</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-51360</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>The server now raises an <code class="codeph">existing-schema-element-changed</code> alert and logs a <code class="msgph">SEVERE_WARNING</code> if existing schema elements are modified or deleted using LDAP. Adding new schema elements logs a <code class="msgph">NOTICE</code> but doesn’t raise an alert.</p>
</div>
</div>
<div class="sect2">
<h3 id="improved-psa-logging-for-connection-errors"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#improved-psa-logging-for-connection-errors"></a>Improved PSA logging for connection errors</h3>
<div class="paragraph">
<p><span class="ping_changetype-improved">Improved</span>
<span class="ping_ticket">DS-44665, DS-44686, DS-49012, DS-51082</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We improved logging in the PSA for connection errors and DNS resolution failures.</p>
</div>
</div>
<div class="sect2">
<h3 id="removed-scim-1-1-support"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#removed-scim-1-1-support"></a>Removed SCIM 1.1 support</h3>
<div class="paragraph">
<p><span class="ping_changetype-info">Info</span>
<span class="ping_ticket">DS-49199</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We removed SCIM 1.1 and related functionality from the server. Migrate any functionality to SCIM 2.0.</p>
</div>
<div class="admonitionblock important">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
<div class="paragraph">
<p>If the server uses SCIM 1.1, you must remove the servlet extensions from all HTTP connection handlers before upgrading. For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ bin/dsconfig set-connection-handler-prop \
    --handler-name "HTTPS Connection Handler" \
    --remove http-servlet-extension:SCIM</pre>
</div>
</div>
</td>
</tr>
</tbody></table>
</div>
</div>
<div class="sect2">
<h3 id="removed-the-swagger-ui-and-schema-generation-endpoints"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#removed-the-swagger-ui-and-schema-generation-endpoints"></a>Removed the Swagger UI and schema generation endpoints</h3>
<div class="paragraph">
<p><span class="ping_changetype-info">Info</span>
<span class="ping_ticket">DS-50931</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We removed the Swagger UI and API endpoints for generating Swagger schema from the Consent and SCIM 2.0 APIs. Learn more about using these APIs in the <a href="https://developer.pingidentity.com/pingdirectory/directory/introduction.html" target="_blank" rel="noopener">developer documentation</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="updated-the-opencsv-library"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#updated-the-opencsv-library"></a>Updated the opencsv library</h3>
<div class="paragraph">
<p><span class="ping_changetype-info">Info</span>
<span class="ping_ticket">DS-51436</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We updated the opencsv library from the abandoned <code class="filepath">net.sf.opencsv 2.3</code> to <code class="filepath">com.opencsv 5.10</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="upgraded-the-embedded-http-server-to-jetty-12"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#upgraded-the-embedded-http-server-to-jetty-12"></a>Upgraded the embedded HTTP server to Jetty 12</h3>
<div class="paragraph">
<p><span class="ping_changetype-info">Info</span>
<span class="ping_ticket">DS-51450</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We upgraded the embedded HTTP server from Jetty 11 to Jetty 12. Most behavior is preserved, with the following exceptions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>HTTP requests with unencoded reserved characters in path segments (for example, a literal forward slash in a distinguished name such as <code class="codeph">/directory/v1/sn=Sch/m*i^d</code>) now receive a <code class="msgph">400 Bad Request</code> response instead of being silently truncated at the reserved character. Clients using the Directory REST API, SCIM API, or any other HTTP servlet extension must percent-encode reserved characters in URL path segments. For example, encode a forward slash as <code class="codeph">%2F</code>, a caret as <code class="codeph">%5E</code>, and a question mark as <code class="codeph">%3F</code>. This requirement is specified in RFC 3986 and is now enforced.</p>
</li>
<li>
<p>The <code class="codeph">Location</code> header in HTTP redirect responses now always contains an absolute URI as required by RFC 7231. Update any clients that relied on a relative URI in this header.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="removed-the-x86-version-of-the-psa"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#removed-the-x86-version-of-the-psa"></a>Removed the x86 version of the PSA</h3>
<div class="paragraph">
<p><span class="ping_changetype-info">Info</span>
<span class="ping_ticket">DS-51333, DS-51351</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We removed the x86 version of the PSA.</p>
</div>
</div>
<div class="sect2">
<h3 id="installing-the-psa-on-windows-server-2016"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#installing-the-psa-on-windows-server-2016"></a>Installing the PSA on Windows Server 2016</h3>
<div class="paragraph">
<p><span class="ping_changetype-info">Info</span>
<span class="ping_ticket">DS-51525</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>You can now install the PSA, version 4.8 and later, on Windows Server 2016. This is an unsupported Windows version and could result in erroneous PSA behavior. The installer displays a warning advising that Windows Server 2016 isn’t supported.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-a-tls-1-3-connection-termination-issue"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-a-tls-1-3-connection-termination-issue"></a>Fixed a TLS 1.3 connection termination issue</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51445</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue that could cause a small percentage of LDAP connections secured with TLS 1.3 to be prematurely terminated.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-the-nodetach-option-for-start-server"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-the-nodetach-option-for-start-server"></a>Fixed the <code class="codeph">--nodetach</code> option for <code class="cmdname"><strong>start-server</strong></code></h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51565</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed the <code class="codeph">--nodetach</code> option for <code class="cmdname"><strong>start-server</strong></code> so that it correctly prevents the server from starting in a detached manner.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-a-manage-profile-replace-profile-error"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-a-manage-profile-replace-profile-error"></a>Fixed a <code class="cmdname"><strong>manage-profile replace-profile</strong></code> error</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51396</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the <code class="cmdname"><strong>manage-profile replace-profile</strong></code> tool could fail with a <code class="msgph">DirectoryNotEmptyException</code> error during upgrades in environments where the <code class="filepath">logs</code> directory was mounted as a separate volume. This failure was caused by the tool holding an internal lock on a background optimization file during the upgrade process. Now, the tool correctly releases these locks and skips the migration of non-essential cache files.</p>
</div>
<div class="paragraph">
<p>Additionally, we fixed a defect where the <code class="cmdname"><strong>setup</strong></code> tool didn’t always correctly apply the <code class="codeph">--optionCacheDirectory</code> argument.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-manage-profile-generate-profile-omitting-obscured-properties"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-manage-profile-generate-profile-omitting-obscured-properties"></a>Fixed <code class="cmdname"><strong>manage-profile generate-profile</strong></code> omitting obscured properties</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51245</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where, after an upgrade, <code class="cmdname"><strong>manage-profile generate-profile</strong></code> excluded <code class="cmdname"><strong>dsconfig</strong></code> commands from the profile that set obscured properties.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-a-server-shutdown-delay-issue"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-a-server-shutdown-delay-issue"></a>Fixed a server shutdown delay issue</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51291</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where a large number of peer connections or unresponsive peers could cause excessively long server shutdown times.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-an-slf4j-startup-warning"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-an-slf4j-startup-warning"></a>Fixed an SLF4J startup warning</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-50990</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We resolved the following server startup warning:</p>
</div>
<div class="paragraph">
<p><code class="msgph">SLF4J(E): A service provider failed to instantiate: org.slf4j.spi.SLF4JServiceProvider: Provider org.slf4j.impl.PingSLF4JServiceProvider not found.</code></p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-admin-console-icons-in-closed-environments"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-admin-console-icons-in-closed-environments"></a>Fixed admin console icons in closed environments</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-50165</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the admin console didn’t properly display icons when running in an environment without internet access, such as a closed environment.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-false-positive-conflicts-for-the-unique-attribute-plugin"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-false-positive-conflicts-for-the-unique-attribute-plugin"></a>Fixed false-positive conflicts for the Unique Attribute plugin</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51327</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the Unique Attribute plugin could report a false-positive conflict. This could happen when a single LDAP operation modified multiple subtypes of the same unique attribute on the same entry.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-an-ldap-changelog-issue-with-subtree-deletions"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-an-ldap-changelog-issue-with-subtree-deletions"></a>Fixed an LDAP changelog issue with subtree deletions</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51456</span>
<span class="ping_product">PingDirectory, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the server didn’t correctly generate LDAP changelog records for subtree deletions. Records could be written out of order on the target server, preventing reliable replay on other destinations. Servers replicating the request could include only the base subtree delete without records for subordinate entry deletions.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-changelog-ordering-for-subtree-deletes"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-changelog-ordering-for-subtree-deletes"></a>Fixed changelog ordering for subtree deletes</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-50986</span>
<span class="ping_product">PingDirectory, PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where subtree delete operations were recorded out of order in the changelog for servers in a replication topology.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-identity-mapper-errors-for-unavailable-base-dns"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-identity-mapper-errors-for-unavailable-base-dns"></a>Fixed identity mapper errors for unavailable base DNs</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51149</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where an identity mapper would throw an error when one or more configured match base DNs were unavailable. We also added a <code class="codeph">tolerate-unavailable-base-dn</code> configuration property to identity mapper objects to control the behavior of the mapper in this scenario.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-rest-api-errors-for-unknown-schema-elements"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-rest-api-errors-for-unknown-schema-elements"></a>Fixed REST API errors for unknown schema elements</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51230</span>
<span class="ping_product">PingDirectory, PingDirectoryProxy</span></p>
</div>
<div class="paragraph">
<p>We fixed internal server errors that could occur when using the REST API with attribute types or object classes not present in the schema.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-a-replication-missing-changes-alarm-error-message"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-a-replication-missing-changes-alarm-error-message"></a>Fixed a <code class="codeph">replication-missing-changes</code> alarm error message</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-48998</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed a benign <code class="msgph">null generator</code> error message that could appear when the server cleared <code class="codeph">replication-missing-changes</code> alarms.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-schema-file-ordering-for-dependent-schema-elements"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-schema-file-ordering-for-dependent-schema-elements"></a>Fixed schema file ordering for dependent schema elements</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51524</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where a running server would allow dependent schema elements to be registered in a file that would be loaded later than the elements they depended on. This wouldn’t cause immediate issues but would prevent the server from restarting until the schema files were modified to correct the misordering.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-a-delegated-admin-sign-on-failure-issue"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-a-delegated-admin-sign-on-failure-issue"></a>Fixed a Delegated Admin sign-on failure issue</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51475</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where signing on to Delegated Admin would fail because of how some access token validators handled client secrets containing URL special characters.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-pluggable-pass-through-authentication-plugin-changes-not-taking-effect"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-pluggable-pass-through-authentication-plugin-changes-not-taking-effect"></a>Fixed Pluggable Pass-Through Authentication plugin changes not taking effect</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51459</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where changes to the <code class="codeph">pass-through-authentication-handler</code> property on a Pluggable Pass Through Authentication plugin made using <code class="cmdname"><strong>dsconfig</strong></code> wouldn’t take effect until the plugin was disabled and reenabled.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-missing-updates-to-modifiersname-and-modifytimestamp"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-missing-updates-to-modifiersname-and-modifytimestamp"></a>Fixed missing updates to <code class="codeph">modifiersName</code> and <code class="codeph">modifyTimestamp</code></h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51353</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where several tools, plugins, and extended operations that rely on internal operations to modify entries wouldn’t update the <code class="codeph">modifiersName</code> and <code class="codeph">modifyTimestamp</code> values on those entries.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-a-password-change-time-issue-during-reencoding"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-a-password-change-time-issue-during-reencoding"></a>Fixed a password change time issue during reencoding</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51349</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where reencoding an entry’s password also updated its <code class="codeph">pwdChangedTime</code> attribute.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-an-authentication-issue-in-the-pluggable-pass-through-authentication-plugin"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-an-authentication-issue-in-the-pluggable-pass-through-authentication-plugin"></a>Fixed an authentication issue in the Pluggable Pass-Through Authentication plugin</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51137</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue in the Pluggable Pass-Through Authentication plugin where successful sign-ons were recorded as authentication failures when <code class="codeph">try-local-bind</code> was enabled. Now, users won’t be incorrectly locked out due to valid pass-through authentications.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-an-issue-with-encrypted-changelog-recovery"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-an-issue-with-encrypted-changelog-recovery"></a>Fixed an issue with encrypted changelog recovery</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51147</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the server didn’t initialize the changelog backend’s encryption tokenizer when data encryption was enabled, preventing encrypted changelog recovery after unscheduled shutdowns.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-an-issue-with-missing-attribute-updates-after-a-repair"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-an-issue-with-missing-attribute-updates-after-a-repair"></a>Fixed an issue with missing attribute updates after a repair</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51487</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where a replica could silently miss attribute updates after the Replication Repair control was used to delete an entry on that replica, and then the entry was later re-added. Other replicas would have the updated attribute, while the affected replica didn’t.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-a-dsreplication-enable-failure"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-a-dsreplication-enable-failure"></a>Fixed a <code class="cmdname"><strong>dsreplication enable</strong></code> failure</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51095</span>
<span class="ping_product">PingDirectory</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where <code class="cmdname"><strong>dsreplication enable</strong></code> wouldn’t execute successfully on PingDirectory servers with <code class="codeph">Sensitive Password Attributes</code> enabled.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-sasl-plain-binds-that-use-proxy-transformations"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-sasl-plain-binds-that-use-proxy-transformations"></a>Fixed SASL PLAIN binds that use proxy transformations</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51350</span>
<span class="ping_product">PingDirectoryProxy</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where SASL PLAIN bind requests failed when passing through DN-mapping or attribute-mapping proxy transformations.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-a-pingdirectoryproxy-startup-failure-with-undefined-external-server-locations"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-a-pingdirectoryproxy-startup-failure-with-undefined-external-server-locations"></a>Fixed a PingDirectoryProxy startup failure with undefined external server locations</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51125</span>
<span class="ping_product">PingDirectoryProxy</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where PingDirectoryProxy would fail to start when using automatic backend discovery against external server instances with a location not defined in PingDirectoryProxy’s configuration.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-unredacted-dns-in-the-sync-failed-ops-log"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-unredacted-dns-in-the-sync-failed-ops-log"></a>Fixed unredacted DNs in the <code class="filepath">sync-failed-ops</code> log</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51558</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the server could write unredacted entry DNs to the <code class="filepath">sync-failed-ops</code> log, even when <code class="codeph">log-redaction-regex</code> was configured. Now, the server applies the configured redaction patterns to the DN field in <code class="filepath">sync-failed-ops</code> log entries, consistent with how they are applied to message text.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-groups-object-class-mapping-omitting-top"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-groups-object-class-mapping-omitting-top"></a>Fixed groups object class mapping omitting <code class="codeph">top</code></h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-47327</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the <code class="cmdname"><strong>create-sync-pipe-config</strong></code> wizard generated a groups object class mapping that omitted <code class="codeph">top</code>. This caused the server to detect groups as out-of-sync on every change and incorrectly apply a modify operation to the sync destination, even when no mapped attribute had changed. This issue didn’t affect user entries.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-missing-description-attribute-mapping-for-active-directory-group-sync"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-missing-description-attribute-mapping-for-active-directory-group-sync"></a>Fixed missing <code class="codeph">description</code> attribute mapping for Active Directory group sync</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-47329</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the <code class="cmdname"><strong>create-sync-pipe-config</strong></code> wizard didn’t include a <code class="codeph">description</code> attribute mapping when generating the groups attribute map for synchronization from PingDirectory to Active Directory. This caused group <code class="codeph">description</code> changes to be silently dropped by the sync pipe.</p>
</div>
<div class="paragraph">
<p>The wizard now also prompts for a separate source base DN for groups, allowing you to specify a different OU than the one for users.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-a-benign-error-with-pingone-password-synchronization"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-a-benign-error-with-pingone-password-synchronization"></a>Fixed a benign error with PingOne password synchronization</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-45978</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where password synchronizations to PingOne would log a benign error about schema failures.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-attribute-mappings-filtering-on-absent-attributes"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-attribute-mappings-filtering-on-absent-attributes"></a>Fixed attribute mappings filtering on absent attributes</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-44411</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where attribute mappings with conditional value patterns that filtered on the absence of an attribute wouldn’t properly map any values.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-an-npe-in-unboundidsyncdestination"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-an-npe-in-unboundidsyncdestination"></a>Fixed an NPE in <code class="codeph">UnboundIDSyncDestination</code></h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-47105</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where <code class="codeph">UnboundIDSyncDestination</code> would throw a <code class="msgph">NullPointerException</code> when a <code class="codeph">LDAPSyncDestinationPlugin</code> returned <code class="codeph">PreStepResult.ABORT_OPERATION</code> for a <code class="codeph">preCreate</code> or <code class="codeph">preModify</code> call and the entry or modification set contained password-policy-state attributes, such as <code class="codeph">pwdAccountLockedTime</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="stopped-the-psa-msi-installer-from-showing-dialogs-during-silent-install"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#stopped-the-psa-msi-installer-from-showing-dialogs-during-silent-install"></a>Stopped the PSA MSI installer from showing dialogs during silent install</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51464</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the PSA MSI installer would display dialog boxes during silent installations (<code class="codeph">/qn</code> or <code class="codeph">/passive</code>), blocking automated deployment scripts. The installer now honors quiet mode flags and logs messages instead of showing popups.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-an-unnecessary-entry-rename-when-using-non-default-matching-rules"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-an-unnecessary-entry-rename-when-using-non-default-matching-rules"></a>Fixed an unnecessary entry rename when using non-default matching rules</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-51458</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the server could attempt to rename an entry to its existing DN in the following scenario:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The RDN attribute used a non-default matching rule (such as <code class="codeph">telephoneNumberMatch</code>).</p>
</li>
<li>
<p>The sync class was configured for byte-for-byte attribute comparison.</p>
</li>
<li>
<p><code class="codeph">creates-as-modifies</code> was enabled.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Now, the server normalizes both DNs using the destination schema before comparison.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-the-psa-upgrade-path-from-versions-older-than-4-7"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-the-psa-upgrade-path-from-versions-older-than-4-7"></a>Fixed the PSA upgrade path from versions older than 4.7</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-49011, DS-51319</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed the upgrade process for the PSA:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>We blocked direct upgrades from versions older than 4.7:</p>
<div class="ulist">
<ul>
<li>
<p>Previously, an upgrade from those versions wouldn’t complete properly because of significant changes in version 4.7.</p>
</li>
<li>
<p>Now, the installer prompts you to uninstall the old PSA before installing version 4.7 or later.</p>
</li>
</ul>
</div>
</li>
<li>
<p>We updated messaging around restarts to clarify that a reboot is only required when prompted by the Windows operating system.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="fixed-a-psa-installation-failure-related-to-the-character"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-a-psa-installation-failure-related-to-the-character"></a>Fixed a PSA installation failure related to the <code class="codeph">#</code> character</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-50788, DS-51233</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where installing the PSA failed when passwords contained the <code class="codeph">#</code> character.</p>
</div>
</div>
<div class="sect2">
<h3 id="fixed-psa-command-line-installation"><a class="anchor" href="https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#fixed-psa-command-line-installation"></a>Fixed PSA command-line installation</h3>
<div class="paragraph">
<p><span class="ping_changetype-fixed">Fixed</span>
<span class="ping_ticket">DS-13850</span>
<span class="ping_product">PingDataSync</span></p>
</div>
<div class="paragraph">
<p>We fixed an issue where the PSA overrode or deleted values during command-line installation.</p>
</div>
</div>
</div>
]]></description>
        </item>
        <item>
            <title><![CDATA[Previous Releases]]></title>
            <link>https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#prevrel</link>
            <guid isPermaLink="false">https://docs.pingidentity.com/pingdirectory/release_notes/pd_release_notes.html#prevrel</guid>
            <pubDate>Tue, 30 Jun 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[

<div class="sectionbody">
<div class="paragraph">
<p>Learn more about enhancements and issues resolved in previous major and minor releases of PingDirectory products using the following links:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="https://docs.pingidentity.com/pingdirectory/11.0/release_notes/pd_release_notes.html" target="_blank" rel="noopener">11.0</a></p>
</li>
<li>
<p><a href="https://docs.pingidentity.com/pingdirectory/10.3/release_notes/pd_release_notes.html" target="_blank" rel="noopener">10.3</a></p>
</li>
<li>
<p><a href="https://docs.pingidentity.com/pingdirectory/10.2/release_notes/pd_release_notes.html" target="_blank" rel="noopener">10.2</a></p>
</li>
</ul>
</div>
</div>
]]></description>
        </item>
    </channel>
</rss>