> For the complete documentation index, see [llms.txt](https://helpcenter.xopero.com/xopero-one-en/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://helpcenter.xopero.com/xopero-one-en/changelog/2026/xopero-one-2.5.0.md).

# Xopero ONE 2.5.0

Release 2.5.0, featuring encryption support for Xopero Sphere Recovery Drive, improved repository restore workflow, and updated Microsoft 365 backup engine.

<p align="center"><a href="https://xopero.com/product-changelogs" class="button secondary" data-icon="globe-www">PREVIOUS RELEASES</a></p>

### 🆕 NEW FEATURES

#### <mark style="background-color:$tint;">Virtual machine restore with original ID for VMware</mark>

Added support for preserving original **VMware** identifiers (`InstanceUUID`) during recovery. Users can now opt to maintain a virtual machine's original identifier when performing full VM restore or instant restore operations. By default, restored VMs continue to receive a newly generated ID, but users can enable the original identifier toggle in the restore interface to preserve the original ID.

#### <mark style="background-color:$tint;">Encryption support for Xopero Sphere Recovery Drive</mark>

Introduced recovery drive data encryption in **XSRD Standalone Agent**. Users can now encrypt information written to the recovery drive using a user-defined passphrase and configurable key length. This safeguards sensitive backup data against unauthorized access in the event of physical drive loss while maintaining incremental backup continuity and deduplication efficiency.

***

### 🔨 IMPROVEMENTS

#### <mark style="background-color:$tint;">Optimized replication task initialization and memory usage</mark>

Improved replication task initialization performance and resource efficiency. Replication task initialization is now significantly faster when the target storage already contains existing data, while simultaneously reducing peak CPU and memory consumption. For cyclic replication scenarios, this optimization accelerates task execution by up to 66 times (e.g., reducing initialization time from 12 hours to 11 minutes), maintaining a stable infrastructure load without compromising data restore capabilities from replicated storage.

#### <mark style="background-color:$tint;">Microsoft 365 backup and recovery migration to Microsoft Graph API</mark>

Updated **Microsoft 365** backup and restore engine to **Microsoft Graph** API. **Xopero ONE** now uses the **Microsoft Graph** API instead of legacy **Exchange Web Services** (**EWS**) to process **Microsoft 365** email messages, contacts, and calendars. This architectural transition ensures long-term service compliance and stability ahead of **Microsoft's** October 2026 **EWS** deprecation while accelerating backup and restore throughput. The update is fully backward-compatible with existing **EWS**-created backups and enhances item-level recovery fidelity by preserving message properties, categories, and attachment integrity. Additionally, optimized pagination and duplicate detection resolve stability issues during recovery across all backup types.

#### <mark style="background-color:$tint;">Concurrent backup task limit enforcement</mark>

Updated management panel task execution logic to consistently respect **Xopero ONE Management Service** (**XMS**) concurrency limits. The management panel now strictly enforces maximum concurrent backup task limits returned by **XMS** across all backup plan types. This change eliminates legacy environment-specific caps and hard-coded constraints, ensuring the panel correctly applies configured defaults (5 concurrent tasks for cloud, 20 for on-premises) and fully honors custom values defined via the `XOPERO_MAX_CONCURRENT_BACKUP_TASKS` environment variable.

#### <mark style="background-color:$tint;">Context-aware AES-256 encryption warning in backup plan settings</mark>

Updated AES-256 encryption warning display behavior in backup plan configurations. **Xopero ONE** now conditionally displays the AES-256 encryption warning exclusively for disk image and **VMware** virtual machine backup plans, where functional constraints related to iSCSI and instant restore apply. For other workloads—such as file-level, **Microsoft 365**, and database backups—the warning is hidden to eliminate unnecessary user confusion regarding features not applicable to those configurations.

#### <mark style="background-color:$tint;">Enhanced logging for custom action scripts</mark>

Improved custom action script execution logging for backup and replication tasks. **Xopero ONE** now logs the execution progress and output of custom action scripts across **Windows** and **Linux** backup agents (workers). Execution logs track script initiation, completion status, and console output, providing complete visibility into pre- and post-task operations, while ensuring that sensitive data such as passwords remain masked in the logs.

#### <mark style="background-color:$tint;">Jira and Confluence restore performance and reliability</mark>

Improved **Jira** and **Confluence** backup browsing performance. **Xopero ONE** now utilizes a metadata caching mechanism to accelerate browsing and enhance reliability when preparing **Jira** and **Confluence** backups for restoration. This update eliminates timeout issues in large enterprise organizations, introduces real-time visual progress indicators during data loading, and guarantees accurate synchronization status feedback regardless of backup retention age.

#### <mark style="background-color:$tint;">Organization mapping and restore validation for repositories</mark>&#xD;

Improved repository restore workflow with enhanced destination controls and validation. **Xopero ONE** now gives administrators clearer visibility and control over restore destinations during repository recovery. This update separates custom repository naming from target path selection, enforces strict organization and repository naming rules, and introduces clear in-app notification guidance detailing fallback behaviors across **GitHub**, **GitLab**, and **Azure DevOps** environments.

***

### 🐛 BUGFIXES

#### <mark style="background-color:$tint;">Intel-based MacOS backup agent startup failure</mark>

Fixed an issue where the **Intel**-based **macOS** backup agent failed to start and register after installation. The agent now starts correctly following installation and successfully registers with the **Xopero ONE Management Service** (**XMS**). Previously, initialization on **Intel**-based **macOS** devices failed without generating diagnostic logs.

#### <mark style="background-color:$tint;">Backup agent remote update failure on Linux</mark>&#xD;

Fixed an issue where remote updates failed on **Xopero ONE Linux** backup agents due to library dependencies. The agent now completes remote updates successfully and remains online throughout the entire upgrade process. Previously, remote updates could fail when restarting the agent service due to a library dependency issue, causing the agent device to go offline. This fix resolves the dependency handling during service restarts to ensure a smooth and reliable upgrade path for **Linux** endpoints.

#### <mark style="background-color:$tint;">SharePoint backup failure due to list view threshold limits</mark>

Resolved an issue where **SharePoint** list view threshold limits caused backup task failures. The **SharePoint** backup module now gracefully handles **SharePoint's** list view threshold limit during backup execution. Instead of failing the entire backup task with an unhandled exception, the backup engine logs error code `DV0395` specifying the affected site and list, allowing the job to continue backing up all remaining resources without interruption.

#### <mark style="background-color:$tint;">Filtering sub-log entries in the events list</mark>

The events list now accurately displays log entries for restore tasks and other sub-logs. When a filter targets sub-logs exclusively, the system automatically switches to a dedicated query mode that retrieves sub-log entries independently from standard task package logs, delivering precise filter results without degrading database performance during standard event searches.

#### <mark style="background-color:$tint;">Deduplication storage cleanup failure</mark>

Fixed an issue where storage cleanup failed to remove system cache-locked deduplication files. The task now completes successfully when deleting deduplication files previously locked by the operating system cache. This resolves an input/output (I/O) error that left orphaned .tr4 files on the target storage, ensuring unused backup data is thoroughly purged and storage capacity is accurately reclaimed.

#### <mark style="background-color:$tint;">SharePoint backup failing on items with null Author field</mark>

Resolved an issue where **SharePoint** backups failed when encountering a null **Author** field. The **SharePoint** backup module now correctly handles sites and items where the **Author** field contains a null value. Previously, encountering an unassigned **Author** field triggered a `NullReferenceException`, causing the backup task to fail. The backup engine now gracefully preserves null values during execution, ensuring uninterrupted backup operations across all **SharePoint** resources.

#### <mark style="background-color:$tint;">Incorrect SLA data protection values in the management panel</mark>

Fixed an issue where SLA percentages displayed incorrectly after switching **Jira** backup types. The SLA summary in the management panel now displays accurate data protection metrics, providing backup administrators with a clear and reliable view of overall coverage. Previously, switching a **Jira** backup plan configuration to granular backup mode could cause inaccurate SLA compliance percentages to render in the executive overview.

#### <mark style="background-color:$tint;">Cleanup of temporary database files during Microsoft 365 email recovery</mark>

Temporary database files are now automatically removed from the target directory during **Microsoft 365** email restore operations to on-premises locations. This eliminates leftover conversion containers that previously caused file access blocks during restoration and cluttered the final storage path.

#### <mark style="background-color:$tint;">Refresh storage information task failure due to unavailable storage</mark>

Fixed an issue where refresh storage information tasks failed when target S3 storage was offline. The system now automatically skips the operation if target S3-compatible storage is unavailable at the completion of a replication task. In scenarios where storage is intentionally powered off (such as via `iDRACPowerDown` power-management scripts), skipping the refresh operation eliminates false-positive failure notifications while preserving accurate job execution reporting.

#### <mark style="background-color:$tint;">Linux pre- and post-backup script execution stability</mark>

Resolved an issue where pre- and post-backup scripts failed on **Linux** agents due to system library interference. Pre-backup and post-backup scripts executed by the backup agent now run reliably when invoking applications that depend on system libraries. Previously, inherited agent environment settings interfered with external application execution, causing custom scripts to unexpectedly fail or crash.

#### <mark style="background-color:$tint;">SharePoint backup plan error messages</mark>

The management panel now correctly displays descriptive, readable error messages instead of raw error codes when a **SharePoint** protection plan cannot be applied due to insufficient permissions or missing site assignments. This enables backup administrators to rapidly diagnose and resolve configuration issues directly within the interface without consulting external diagnostic documentation.

#### <mark style="background-color:$tint;">Restore resilience against transient SMB errors</mark>

Fixed an issue where transient SMB errors caused backup and restore tasks to fail. Backup and restore operations targeting SMB storage destinations now gracefully handle transient `STATUS_INVALID_SMB` errors by automatically retrying the connection. Previously, temporary network or server-side interruptions could cause task execution to fail immediately. The engine now automatically recovers from connection drops, ensuring uninterrupted data protection and reliable recovery workflows.

#### <mark style="background-color:$tint;">Jira attachment backup stability for large organizations</mark>

Fixed an issue where **Jira** attachment backups failed with an `OutOfMemoryException` in large environments. These backups in large-scale organizations (500 GB+) now execute reliably without triggering memory exhaustion. This fix optimizes memory allocation during attachment processing, ensuring complete and reliable backups across all **Jira** space resources.

#### <mark style="background-color:$tint;">GitHub custom properties synchronization</mark>

Resolved an issue where **GitHub** custom properties synchronization failed across all organizations due to single-organization transient errors. **GitHub** custom properties synchronization now continues processing remaining organizations if fetching the schema for one organization fails due to a transient error (such as HTTP 404). Previously, a transient error in a single organization blocked synchronization across the entire account; the system now preserves the existing schema for the affected organization while successfully updating all remaining entities. If a permanent authorization failure (HTTP 401) or suspended account state occurs, synchronization halts cleanly, and the organization is correctly flagged for repair.

#### <mark style="background-color:$tint;">Backing up archived Confluence spaces</mark>

Fixed an issue where backing up archived **Confluence** spaces triggered errors during blueprint and template processing. Backup operations for archived **Confluence** spaces now correctly capture space blueprints and templates across both full and incremental backup tasks. This update ensures complete, automated data protection for archived **Confluence** environments without requiring manual workarounds (such as temporarily restoring spaces to an active state).
