Sonatype Nexus Repository 3.91.0 - 3.91.1 Release Notes
The Sonatype Nexus Repository 3.91.x release line includes exciting new features, enhancements, and bug fixes. Learn more in the sections below!
Ready to Upgrade?
Before upgrading, see the Known Issues & Upgrade Guidance section at the end of these release notes to determine whether any known issues or upgrade recommendations apply to your environment.
What's New and Noteworthy in 3.91.1?
Released April 17, 2026
Additional Bug Fixes in 3.91.1
The following additional bug fixes are included in 3.91.1:
Issue ID | Description |
|---|---|
NEXUS-51509 | Concurrent PyPI and npm proxy requests for the same package under Policy-Compliant Component Selection now share a single upstream evaluation call to Firewall, preventing the duplicate memory loading that previously caused |
NEXUS-51485 | Docker clients now receive a Docker Registry HTTP API V2 compliant error response containing the quarantine explanation and Firewall report URL directly in the JSON body when Repository Firewall blocks a pull request. |
NEXUS-51112 | Policy-Compliant Component Selection now uses an increased timeout when evaluating metadata for large PyPI packages, allowing installations of components like tensorflow and duckdb to complete successfully. |
What’s New and Noteworthy in 3.91.0?
Released April 7, 2026
In Case You Missed It: New Instance Migrator
In Nexus Repository 3.90.2 (March 23, 2026), we introduced a new Instance Migrator, which allows those on OrientDB-based Nexus Repository 3.70.5 to migrate to either Nexus Repository Cloud or self-hosted version 3.90.2+ without downtime.
Migration preserves core configuration and repository data, enabling a seamless transition to a more scalable and supported architecture. See the Nexus Repository 3.90.2 release notes for high-level details and the Instance Migrator help documentation for an in-depth look at the migration process and requirements.
You can download the instance migrator for version 3.70.5 from the OrientDB Downloads page.
Docker Tagging Update for Nexus Repository Images
As of release 3.91.0, Sonatype Nexus Repository has updated its Docker image tagging strategy, making the Alpine-based image the default variant. With this change, the 3.91.0, 3.91.0-alpine, and latest tags now point to the Alpine image, while the 3.91.0-ubi tag continues to reference the UBI-based image. Shifting the default to Alpine lowers risk exposure and improves security posture for containerized deployments.
Support for Swift Group Repository Format
Sonatype Nexus Repository now supports Swift group repositories, enabling you to aggregate multiple Swift package sources into a single endpoint. This capability simplifies dependency management by allowing teams to configure a single repository URL while seamlessly pulling components from multiple hosted, proxy, or group repositories. By consolidating access, you can reduce configuration overhead and improve consistency across development workflows.
For full details, see the Swift Repositories help documentation.
Preserved Proxy Repository Configuration During Migration
Sonatype Nexus Repository now preserves authentication credentials and HTTP request settings when migrating proxy repositories from OrientDB to self-hosted instances. Key configurations, such as connection timeout, retry attempts, and user agent values, carry over automatically, reducing the need for post-migration setup and ensuring repositories remain operational immediately after migration.
If authentication credentials cannot be securely migrated due to missing encryption configuration, Nexus Repository removes only the credential details while retaining all other repository settings. This approach maintains repository integrity while prompting you to reconfigure sensitive information as needed.
Automated Yum Repository Metadata Regeneration
Sonatype Nexus Repository now automatically regenerates Yum repository metadata during repository migrations, including required files such as repomd.xml and associated .xml.gz files. This enhancement ensures migrated repositories remain complete and immediately usable, eliminating the need for manual metadata repair or post-migration steps.
Global Webhooks for Firewall Quarantine Events
Sonatype Repository Firewall now supports global webhooks for quarantine events, automatically notifying your systems when components are quarantined or blocked due to policy violations. This capability enables seamless, real-time integration with your existing security and DevOps workflows, reducing the need for manual monitoring.
Cloud-Native AWS Reference Architectures for Sonatype Nexus Repository
Sonatype is now providing new cloud-native AWS reference architectures for Sonatype Nexus Repository, replacing the legacy reference architectures 1–4. The updated set includes five right-sized deployment options (XS, S, M, L, and XL) designed to support a range of scalability and performance needs. Each architecture includes Terraform configurations to simplify provisioning and accelerate time to value, enabling teams to deploy Nexus Repository in AWS with greater consistency and reduced operational overhead.
These architectures are now published in the Platform Cloud-Native Reference Architectures section alongside the existing IQ reference architectures, reinforcing Sonatype’s platform-oriented approach. The Sonatype Platform AWS Reference Architectures landing page provides a high-level overview of each architecture with links to specific details for each option. The previous Nexus Repository reference architectures are now marked as "Legacy" and will be removed in a future release.
Bug Fixes
This section summarizes the bug fixes included in Nexus Repository 3.91.0, grouped by functional area to highlight the most relevant improvements. The updates focus on improving repository correctness, system stability, performance, and user experience, while also addressing edge cases across supported formats and deployment environments. Each category provides a high-level view of related fixes, with details for individual issues listed below.
npm and PyPI Fixes
These updates focus on improving metadata accuracy, caching behavior, and policy enforcement for npm and PyPI repositories. They address inconsistencies caused by filtering, improve logging visibility for policy decisions, and ensure repository responses remain correct and performant under concurrent and edge-case scenarios.
Issue | Description |
|---|---|
NEXUS-51537 | PyPI group repositories now cache merged package index pages across requests instead of regenerating them each time. |
NEXUS-51222 | Quarantine logs for npm and PyPI repositories now display the specific policy violation that caused versions to be filtered when Policy Compliant Component Selection retrieves results from Firewall. |
NEXUS-50764 | npm group repositories now maintain accurate package metadata when Policy-Compliant Component Selection filters versions, preventing empty version lists during concurrent version-specific and full metadata requests. |
NEXUS-50623 | npm group repositories return valid JSON metadata without duplicate |
NEXUS-50574 | npm audit requests for projects without dependencies now complete successfully instead of generating error logs. |
NEXUS-50437 | Debug logging now captures the specific IQ policy names, IDs, and threat levels that caused PCCS to filter component versions from npm metadata responses. |
NEXUS-50428 | The "Repair – Rebuild npm metadata" task preserves original package version publish timestamps instead of overwriting them with the rebuild execution time. |
NEXUS-40915 | PyPI group repositories now display all package files from member repositories, including variants that differ only in letter casing, with consistent alphabetical ordering regardless of member repository sequence. |
NEXUS-39228 | Group repositories for npm and PyPI now invalidate cached metadata when member proxy repositories apply policy-based version filtering, which may impact systems relying on the previous stale cache behavior. |
NEXUS-49457 | APT proxy repositories now serve cached packages even after their removal from upstream by merging locally cached content into repository metadata. |
NEXUS-29440 | PyPI proxy repositories support an empty Remote Index Path setting to connect with registries like GemFury and NVIDIA PyPI that serve packages directly from their root URL instead of the standard |
Docker Fixes
These fixes target Docker repository behavior, focusing on correctness, scalability, and standards compliance. They improve handling of large datasets, manifest and tag integrity, permission evaluation, and compatibility with modern OCI image formats.
Issue | Description |
|---|---|
NEXUS-51199 | Deleting a Docker manifest now removes all associated tags automatically, maintaining repository integrity for security scanning. |
NEXUS-51155 | Docker garbage collection now correctly processes all manifests regardless of the continuation browse limit setting, preventing data loss when the limit exceeds 1000. |
NEXUS-50861 | Docker repositories now accept image names containing consecutive underscores, aligning with OCI Distribution Specification standards. |
NEXUS-50808 | Docker tag list requests now return a maximum of 10,000 tags (100 pages) per image to prevent system failures, completing in 2-3 minutes instead of timing out or crashing when upstream registries contain extremely large numbers of tags (20,000+). |
NEXUS-50532 | Docker group repositories now return a 504 Gateway Timeout error when firewall cooperative wait timeouts occur, instead of continuing to query other members and returning 404 Not Found. |
NEXUS-50499 | Path-based Docker repositories now evaluate anonymous pull permissions individually, allowing anonymous pulls to succeed on repositories with "Allow Anonymous Docker Pulls" enabled regardless of the settings configured on other path-based Docker repositories. |
NEXUS-50471 | Docker container startup scripts now prevent duplicate JVM memory parameters from appearing in the command line when custom memory settings are specified via INSTALL4J_ADD_VM_PARAMS, eliminating confusion about which values are active. |
NEXUS-50384 | Docker repositories now recognize and process zstd-compressed layers without triggering unnecessary validation, eliminating performance delays during push, pull, and copy operations for modern OCI images. |
NEXUS-45172 | When attempting to redeploy an asset with the "Allow Redeploy" setting disabled, error messages now explicitly state that redeployment is not permitted for the repository, replacing the previous generic "blob upload invalid" message across all repository formats. |
NEXUS-39080 | Docker proxy repositories now return HTTP 404 (Not Found) instead of HTTP 400 (Bad Request) when remote content fails digest validation, correctly indicating that the requested content is unavailable rather than suggesting the client's request was malformed. |
Other Repository Format Fixes
These changes improve compatibility and correctness across a range of repository formats, including Maven, Terraform, Conan, Yum, and others. They address edge cases in metadata handling, packaging behavior, and protocol support to ensure consistent interactions with upstream tools and clients.
Issue | Description |
|---|---|
NEXUS-51407 | Maven proxy repositories with strict content type validation now accept macOS Mach-O executable files (such as protoc binaries) with |
NEXUS-51152 | Swift and Terraform proxy repositories now require HTTP proxy configuration through the Nexus UI (Administration → System → HTTP) instead of JVM system properties in nexus.vmoptions. Git operations for Swift and Terraform proxy repositories automatically route through the HTTP proxy configured in Nexus Repository Manager, eliminating the need for manual JVM property configuration and application restarts. |
NEXUS-51145 | Terraform proxy repositories now automatically repackage module archives downloaded from Git hosting providers, removing the wrapper directory structure to enable successful installation of submodules. |
NEXUS-50616 | Hugging Face proxy repositories correctly handle filenames containing spaces and special characters by properly encoding URI segments in requests to upstream repositories. |
NEXUS-48863 | Terraform CLI can now discover and download modules through standard Terraform Registry API endpoints, including service discovery, version listing, and download redirect functionality. |
NEXUS-48742 | Conan repositories accept metadata files from the Conan 2.0 client, including SBOM files stored in the package metadata folder. |
NEXUS-44583 | Maven SNAPSHOT artifacts uploaded directly through the GUI without timestamped versions now display their assets correctly when selected from search results, instead of returning a 404 error. |
NEXUS-43667 | Maven repository cleanup policies based on last downloaded time now correctly evaluate imported components after checksum files inherit download timestamps from their parent assets. |
NEXUS-43238 | Deleting a folder from the Browse view of a Go repository now removes all associated components and browse nodes completely, not just the assets. |
NEXUS-42338 | Yum repositories correctly identify the architecture of signed RPM packages by reading header tags instead of the lead header type field. |
NEXUS-37132 | Conan proxy repositories now return valid JSON responses ( |
High Availability, Concurrency, and System Stability
These updates improve system resilience under load, particularly in high availability and multi-node environments. They address concurrency issues, reduce the likelihood of deadlocks or timeouts, and ensure consistent behavior during distributed operations and resource-intensive tasks.
Issue | Description |
|---|---|
NEXUS-51311 | Toggling IQ Server capability state completes without causing system deadlocks or UI timeouts. |
NEXUS-51301 | Disabling IQ Server integration in Nexus Repository Cloud instances completes immediately without blocking or causing node unresponsiveness. |
NEXUS-51191 | The "Admin - Remove a member from a blob store group" task processes blobs safely when multiple instances run concurrently, eliminating thread-safety errors in progress logging. |
NEXUS-50430 | Concurrent asset requests across High Availability nodes retrieve blobs successfully through automatic retry logic with exponential backoff. |
NEXUS-50504 | Container image scanning processes large Go binaries (500MB+) through a streaming parser that maintains constant memory usage, preventing heap exhaustion during Firewall evaluation of Docker images. |
NEXUS-50167 | Added support for configuring pod-level |
NEXUS-48954 | Session timeout settings configured in the UI now apply correctly in High Availability deployments, ensuring users remain logged in for the specified duration. |
NEXUS-46360 | The Helm chart for External Secrets Operator configurations accepts an optional property field to extract specific keys from HashiCorp Vault KV v2 secrets stored in JSON format. |
Blob Stores, Storage, and Data Integrity
These fixes focus on improving reliability and correctness in storage-related operations, including blob store management, migrations, and data consistency. They help ensure accurate metadata, prevent data loss, and improve behavior during concurrent or complex storage operations.
Issue | Description |
|---|---|
NEXUS-51248 | The secrets migration upgrade task successfully processes proxy repositories that contain trailing whitespace in their remote URL configuration. |
NEXUS-51210 | Blob store migration tasks for Maven group repositories preserve metadata availability throughout the operation, preventing intermittent access failures during active client requests. |
NEXUS-50905 | S3 blob stores on different endpoints now validate buckets against their own configured endpoint, preventing initialization failures when multiple S3 configurations exist on the same instance. |
NEXUS-47471 | Database migration completes successfully when Maven components contain null attribute values, allowing the process to continue rather than fail with an error. |
NEXUS-44136 | Database migrations between H2 and PostgreSQL now preserve blob store metrics, ensuring accurate counts and sizes appear immediately after migration without requiring manual recalculation tasks. |
NEXUS-42298 | Blob store group member removal operations now complete successfully when temporary files are deleted by concurrent cleanup tasks. |
NEXUS-39077 | Reconcile tasks now preserve the original blob creation timestamp when restoring raw repository assets from imported data. |
NEXUS-37039 | The "Cleanup unused asset blobs" task now automatically removes orphaned database records when their associated blob store has been deleted, eliminating previous warning messages and preventing database bloat. |
NEXUS-51030 | Creating proxy repositories via the REST API no longer requires the |
UI, Permissions, and User Experience
These updates enhance usability and consistency across the user interface and permission model. They resolve visibility issues, improve navigation behavior, and ensure that access controls and UI elements behave predictably for different user roles.
Issue | Description |
|---|---|
NEXUS-50761 | Repository browsing works correctly for users who have both administrative privileges and content selector privileges assigned to their roles. |
NEXUS-50552 | The Browse menu appears for users who have Content Selector privileges with browse permissions, matching the visibility behavior of standard repository-view privileges. |
NEXUS-50163 | The user interface handles rapid navigation during page loading without encountering null reference errors. |
NEXUS-46560 | The Usage Center maintains functionality when sessions expire, preventing null reference errors during data processing. |
NEXUS-41419 | Role editing operations automatically remove references to obsolete privileges rather than returning an error. |
Logging, Observability, and Diagnostics
These changes improve visibility into system behavior through enhanced logging and diagnostics. They make it easier to troubleshoot issues by providing clearer, more detailed log output and ensuring relevant operational events are properly recorded.
Issue | Description |
|---|---|
NEXUS-51164 | Warning messages about invalid maven-metadata.xml files now include the repository name for easier troubleshooting. |
NEXUS-50510 | DEBUG logs now capture blocked outbound requests when SSRF protection prevents access to private or local network addresses, including the blocked host and specific reason for the block. |
NEXUS-50322 | Staging delete operations now log detailed error information including query parameters when unexpected exceptions occur, making troubleshooting failures straightforward without requiring TRACE-level logging. |
NEXUS-44075 | FluentBit log processing in Kubernetes deployments no longer generates tag prefix errors when parsing Nexus application logs. |
NEXUS-45518 | Tag creation, updates, and deletions are now recorded in the audit.log file with details about the tag name, attributes, and the user who performed the action. |
NEXUS-44603 | Scheduler health check alerts for auto-recovered task triggers now include instructions directing administrators to review and update task schedules in the Administration console. |
Authentication and Security
These fixes strengthen authentication flows and ensure accurate enforcement of access control policies. They address issues with session handling, role synchronization, and HTTP response codes to provide clearer and more secure behavior.
Issue | Description |
|---|---|
NEXUS-50878 | Task creation and update now prevent property-based overrides of the internal |
NEXUS-50529 | Session logout operations complete successfully for OIDC-authenticated users whose sessions have expired, returning the expected response instead of an internal server error. |
NEXUS-50324 | Logging out of Nexus Repository SaaS now fully terminates authentication sessions, requiring users to re-enter credentials instead of only MFA codes when signing back in. |
NEXUS-50196 | SAML authentication now removes external role mappings from user accounts when their corresponding groups are removed from the identity provider, ensuring privileges stay synchronized with current group membership. |
NEXUS-39798 | Database connection failures during authentication now return HTTP 503 Service Unavailable instead of HTTP 401 Unauthorized, clearly indicating infrastructure issues rather than incorrect credentials. |
NEXUS-20520 | REST API endpoints now return HTTP 401 (Unauthorized) when accessed without credentials, and HTTP 403 (Forbidden) when accessed by authenticated users lacking required permissions. |
Search and Indexing
These updates improve the reliability and accuracy of search and indexing operations. They address performance limits, ensure correct query matching behavior, and guarantee that index updates are applied consistently before results are returned.
Issue | Description |
|---|---|
NEXUS-50813 | Tag association operations now complete search index updates before returning success, enabling immediate component promotion in staging workflows. |
NEXUS-50690 | npm search queries return results successfully when using PostgreSQL databases. |
NEXUS-50251 | Search indexing successfully processes components with tens of thousands of associated paths by limiting parameter counts to stay within PostgreSQL boundaries. |
NEXUS-50246 | Wildcard version searches now match only packages where the version starts with the specified pattern, preventing incorrect matches on versions that contain the pattern elsewhere. |
Scheduled Tasks and Background Jobs
These fixes improve the reliability and behavior of scheduled and background tasks. They ensure task configurations persist correctly, prevent failures during upgrades, and provide better resource management and visibility into task execution progress.
Issue | Description |
|---|---|
NEXUS-50628 | Schedule modifications to the "Admin - Cleanup expired user tokens" task persist across Nexus Repository restarts. |
NEXUS-50585 | The Quartz Job Key Unification upgrade task now skips tasks with deprecated or removed type IDs instead of failing with a NullPointerException, allowing the upgrade process to complete successfully. |
NEXUS-47043 | The Execute Reconcile Plan task now caps its thread pool at 50% of available CPU cores by default to prevent resource saturation on systems with limited processors. |
NEXUS-49003 | The "Repair - Rebuild repository browse" task displays overall progress across all repositories with repository name and completion count, starting at 0% and finishing at 100%. |
Coming Soon to Sonatype Nexus Repository
Transition to Alpine-Only Docker Images (UBI Deprecation Notice)
Starting with Sonatype Nexus Repository 3.94.0, the Alpine-based image will become the sole supported variant, with both the 3.94.0 and latest tags pointing to Alpine. Version 3.93.x will be the final release to include the -ubi tag, providing a transition window for teams that still rely on the UBI-based image.
Known Issues & Upgrade Guidance
This section captures known issues in the 3.91.x line as well as upgrade guidance.
Resolved Known Issues
Impacted Version(s) | Version in which Issue is Resolved | Description |
|---|---|---|
3.91.x – 3.93.0 | 3.93.1 | When a PyPI proxy repository points to a remote repository that returns relative links for Python wheel files, Nexus Repository may incorrectly resolve those links when constructing the upstream download request. This can result in invalid upstream URLs and HTTP 404 responses returned to Python clients. This issue is known to affect chained PyPI proxy configurations where one Nexus Repository instance proxies another Nexus Repository instance. PyPI proxy repositories configured to proxy PyPI.org directly are not known to be affected. If you use chained PyPI proxy repositories with another Nexus Repository instance as the remote, do not upgrade to Nexus Repository 3.91.x – 3.93.0. This issue is fixed in Nexus Repository 3.93.1. If you use chained PyPI proxy repositories with another Nexus Repository instance as the remote, upgrade to Nexus Repository 3.93.1. |
3.90.x – 3.92.x | 3.93.0 | When a Maven group repository has proxy repositories as direct members, the group may serve its cached merged This issue affects flat Maven group repositories with direct proxy members. Direct requests to the proxy repositories continue to honor the proxy metadata cache setting. If you use Maven group repositories with direct proxy members, upgrade to Nexus Repository 3.93.0. Until you can upgrade, manually invalidate the affected group repository cache after upstream deployments by using the repository |
Additional Upgrade Guidance
Change to Anonymous Docker Pull Behavior
Nexus Repository 3.91.0 changes how anonymous pulls are handled for Docker repositories that use path-based routing.
Each Docker repository now respects its own Allow Anonymous Docker Pulls setting, regardless of the anonymous pull settings configured for other path-based Docker repositories.
If you rely on anonymous Docker pulls, review your configuration before upgrading to ensure that:
Anonymous access is enabled globally under Settings → Security → Anonymous Access.
Allow anonymous Docker pulls for this repository is enabled for each Docker repository that should permit anonymous pulls.
The Docker Bearer Token Realm is active under Settings → Security → Realms.
After upgrading, repositories that do not have Allow anonymous Docker pulls for this repository enabled will not permit anonymous pulls through the Docker CLI, even if global anonymous access is enabled.
For more information, see our Docker Authentication help documentation.