What does HRESULT 0x80045398 (FSRM_E_EXPIRATION_PATH_TOO_LONG) mean?

 
Previous Next
FSRM_E_EXPIRATION_PATH_NOT_WRITEABLE FSRM_E_EXPIRATION_VOLUME_NOT_NTFS

FSRM_E_EXPIRATION_PATH_TOO_LONG

FSRM_E_EXPIRATION_PATH_TOO_LONG is the failure HRESULT 0x80045398 (signed decimal -2147200104, unsigned decimal 2147767192). Its severity bit is 1, facility is 4 (FACILITY_ITF), and the facility-specific code field is 0x5398.

The configured expiration directory path is too long

This HRESULT rejects an expiration-directory string that exceeds the limit accepted by File Server Resource Manager. The AllStat message says the path must be 150 characters or shorter, while Microsoft’s current protocol and property documentation specify a maximum of 148 characters. For reliable cross-version behavior, use 148 characters or fewer and leave additional operational headroom.

AllStat records the official condition as: “The expiration path must be 150 characters or shorter.” The wording should be interpreted at this FSRM stage, not as a generic file-system or COM failure.

Where the failure boundary lies

The validation applies to the configured expiration root, before FSRM creates its server, job, timestamp, drive, and source-directory hierarchy beneath that root. General long-path support in other Windows APIs does not override this FSRM property contract. Prefix tricks or a long-path-aware process therefore do not make an oversized job property valid.

Likely causes to separate

  • The chosen root contains deeply nested administrative or organizational folder names.
  • A deployment script expands variables, server names, or environment-specific prefixes beyond the tested length.
  • A migration preserves a path that was accepted or stored differently by an older management layer.
  • The caller counts display characters incorrectly after normalization or includes trailing separators and whitespace.

Evidence worth preserving

  • Log the exact Unicode path string submitted to FSRM and its character count after final expansion.
  • Record whether the value came from PowerShell, WMI, COM, import, or the MMC snap-in.
  • Preserve the unexpanded configuration template so the deployment system can be corrected rather than patched manually.
  • Check destination identity separately; shortening the path must not redirect expired files to the wrong volume.

Diagnostic sequence

  • Count the final configured expiration root, not only the visible variable or parent path.
  • Reduce nesting or use a shorter dedicated local root while preserving security and operational ownership.
  • Keep the root at or below 148 characters to satisfy the stricter documented contract.
  • Reopen the saved job and verify that the stored path is exactly the intended destination.
  • Run a controlled expiration test with a deeply nested source file to evaluate the complete generated destination path.

Retry and recovery

Choose a shorter local NTFS expiration root and update the job. Retrying the same string is deterministic and should not be repeated. If existing expired data already occupies the old destination, plan a migration or retention strategy rather than changing the path without documenting where historical files remain.

What this HRESULT does not establish

The code does not say the source file path is too long and does not prove the destination is unwritable. It also should not be “fixed” by truncating arbitrary characters in automation because that can create collisions or select a different directory.

Difference from nearby FSRM results

FSRM_E_EXPIRATION_PATH_NOT_WRITEABLE validates access to an otherwise acceptable path. FSRM_E_EXPIRATION_VOLUME_NOT_NTFS validates the destination volume type.

Practical scenario

A deployment template combines a long site code, department hierarchy, and server name into a 154-character expiration root. FSRM rejects the job. The administrator creates a short dedicated root, applies the same restricted ACL, updates the template, and verifies generated expired-file paths with a test job.

Guidance for software and telemetry

Validate the final string before submission and report both the observed length and supported maximum. Prefer a stable short root plus metadata in reports instead of encoding the entire organizational hierarchy in the path.

Official Microsoft references


Looking for a different code? Search another status or error code.