-
Notifications
You must be signed in to change notification settings - Fork 0
Error Codes
RackStack uses structured error codes to help identify and resolve issues quickly. Each error displays a code, description, and a link to this page.
Errors follow the pattern RS-XXXX where the first digit indicates the category:
| Range | Category |
|---|---|
| RS-1xxx | Core / System |
| RS-2xxx | Networking |
| RS-3xxx | Security |
| RS-4xxx | Roles / Features |
| RS-5xxx | VM Pipeline |
| RS-6xxx | Storage / Cluster |
| RS-7xxx | Configuration / Export |
| RS-8xxx | Agent / External |
Script requires administrative privileges
Cause: RackStack was launched without "Run as Administrator." Most operations (network configuration, Hyper-V, disk management, firewall rules) require elevated privileges on Windows Server.
Resolution:
- Right-click PowerShell and select Run as Administrator, then relaunch RackStack.
- If running from a scheduled task, ensure the task is configured with Run with highest privileges.
- On Server Core, launch
powershell.exefrom an elevated command prompt.
defaults.json parse error
Cause: The defaults.json file contains invalid JSON syntax. Common issues include trailing commas, unescaped backslashes in file paths, missing closing braces, or BOM/encoding problems.
Resolution:
- Validate the file with
Get-Content defaults.json | ConvertFrom-Jsonto see the exact parse error. - Check for trailing commas after the last property in any object or array.
- Ensure file paths use escaped backslashes (
\\) or forward slashes (/). - Re-copy from
defaults.example.jsonand reapply your customizations if the file is corrupted.
Module load failure
Cause: One or more RackStack modules failed to load during initialization. This can happen if a .ps1 file is corrupted, missing UTF-8 BOM encoding, or contains syntax errors introduced by manual editing.
Resolution:
- Check the error details for the specific module number and filename.
- Re-download RackStack from the latest release to replace corrupted files.
- If running from source, ensure all
.ps1files are saved with UTF-8 BOM encoding. - Run
Get-Content -Path <module>.ps1 | Out-Nullto verify the file parses without errors.
PowerShell version unsupported
Cause: RackStack requires Windows PowerShell 5.1 or later. The detected version is too old, or the script is running under an incompatible host (e.g., PowerShell Core 6.x without required Windows modules).
Resolution:
- Run
$PSVersionTable.PSVersionto check your current version. - Install WMF 5.1 on Server 2012 R2 from the Microsoft Download Center.
- Use Windows PowerShell 5.1 (
powershell.exe), not PowerShell 7 (pwsh.exe), for full compatibility with Windows Server management cmdlets.
Transcript start failed
Cause: RackStack could not start a PowerShell transcript for session logging. The transcript output directory may not exist, may lack write permissions, or another transcript may already be active.
Resolution:
- Verify the log directory exists and the current user has write access.
- Run
Stop-Transcriptto end any existing transcript session, then relaunch. - Check available disk space on the target drive.
Configuration directory inaccessible
Cause: RackStack cannot read or write to its configuration directory. The directory may not exist, the path may be on an unavailable network share, or NTFS permissions prevent access.
Resolution:
- Verify the configuration path exists with
Test-Path. - If the path is on a network share, confirm connectivity and that the share is accessible from this session.
- Check NTFS permissions with
Get-Acl <path>and ensure the running account has read/write access. - Run RackStack from a local directory if network storage is unreliable.
Invalid CLI parameter
Cause: A command-line argument passed to RackStack is not recognized or has an invalid value. This includes misspelled parameter names, missing required values, or conflicting flags.
Resolution:
- Run RackStack with
-Helpto see available parameters and their expected values. - Check for typos in parameter names (PowerShell parameters are prefixed with
-). - If using batch mode, verify the parameter matches a supported batch operation.
Batch config profile parse error
Cause: The batch configuration profile (JSON or CSV) contains invalid syntax or references settings that do not exist. The file may have been manually edited with errors or exported from an incompatible version.
Resolution:
- Validate JSON profiles with
Get-Content profile.json | ConvertFrom-Json. - For CSV profiles, ensure headers match expected column names exactly.
- Re-export the profile from the current version of RackStack to ensure compatibility.
- Check the batch mode documentation for the expected profile schema.
Windows Update operation failed
Cause: A Windows Update scan or installation failed. The Windows Update service may be stopped, the update catalog may be unreachable, or a previous update is pending a reboot before new updates can be installed.
Resolution:
- Restart the Windows Update service:
Restart-Service wuauserv. - Check for pending reboots:
Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'. - Reboot the server and retry if a reboot is pending.
- Run
sfc /scannowandDISM /Online /Cleanup-Image /RestoreHealthto repair component store corruption. - Verify internet connectivity to Microsoft Update servers.
No physical network adapters found
Cause: RackStack could not detect any physical network adapters. All adapters may be disabled, drivers may not be installed, or the server may only have virtual adapters visible.
Resolution:
- Run
Get-NetAdapter -Physicalto see what Windows detects. - Check Device Manager for adapters with missing or failed drivers.
- Install the correct NIC drivers for your hardware (Intel, Broadcom, Mellanox, etc.).
- On Hyper-V hosts, ensure you are running RackStack in the management OS, not inside a VM.
Invalid IP address format
Cause: The IP address entered is not a valid IPv4 address. It may contain non-numeric characters, octets outside the 0-255 range, or an incorrect number of octets.
Resolution:
- Enter the address in standard dotted-decimal notation (e.g.,
192.168.1.10). - Verify each octet is between 0 and 255.
- Do not include the subnet mask or CIDR prefix with the IP address if prompted separately.
Invalid subnet mask or CIDR prefix
Cause: The subnet mask or CIDR prefix length is not valid. Common mistakes include non-contiguous subnet masks, CIDR values outside 1-32, or entering a subnet mask when a prefix length is expected.
Resolution:
- Use standard subnet masks (e.g.,
255.255.255.0) or CIDR prefix lengths (e.g.,24). - For CIDR, enter only the number (1-32), not the slash.
- Common mappings:
/24=255.255.255.0,/16=255.255.0.0,/8=255.0.0.0.
VLAN creation failed
Cause: The VLAN could not be created on the specified network adapter. The adapter may not support 802.1Q VLAN tagging, the VLAN ID may be out of range (1-4094), or the adapter may be part of a SET team that requires a different configuration approach.
Resolution:
- Verify adapter VLAN support:
Get-NetAdapterAdvancedProperty -Name <adapter> -RegistryKeyword VlanID. - If the adapter is in a SET team, create the VLAN on the virtual switch instead of the physical adapter.
- Ensure the VLAN ID is between 1 and 4094 and matches your switch configuration.
- Check that the physical switch port is configured as a trunk or tagged for the target VLAN.
SET team creation failed
Cause: Switch Embedded Teaming (SET) creation failed. SET requires Hyper-V to be installed, adapters must be the same speed, and the adapters must not already be in another team or bound to a virtual switch.
Resolution:
- Verify Hyper-V is installed:
Get-WindowsFeature Hyper-V. - Ensure selected adapters are the same link speed and are not already part of a team.
- Remove existing virtual switches on the target adapters:
Remove-VMSwitch. - Check that adapters are connected and link-up:
Get-NetAdapter | Where-Object Status -eq 'Up'.
iSCSI target unreachable
Cause: The iSCSI target portal did not respond. The target IP may be incorrect, the iSCSI target service may be down, a firewall may be blocking port 3260, or there is no network path to the target.
Resolution:
- Test basic connectivity:
Test-NetConnection -ComputerName <target-ip> -Port 3260. - Verify the iSCSI initiator service is running:
Get-Service MSiSCSI. - Start the service if stopped:
Start-Service MSiSCSI; Set-Service MSiSCSI -StartupType Automatic. - Check firewall rules on both the initiator and target sides for TCP port 3260.
DNS configuration failed
Cause: DNS server addresses could not be set on the specified adapter. The adapter may not exist, the interface index may have changed, or the DNS addresses are unreachable.
Resolution:
- Set DNS manually:
Set-DnsClientServerAddress -InterfaceAlias <adapter> -ServerAddresses @('8.8.8.8','8.8.4.4'). - Verify the adapter name is correct:
Get-NetAdapter | Select-Object Name, InterfaceIndex. - Test DNS server reachability:
Test-NetConnection -ComputerName <dns-ip> -Port 53.
Hostname change failed
Cause: The computer rename operation failed. The new hostname may contain invalid characters, exceed 15 characters (NetBIOS limit), or the current user may lack permission to rename domain-joined machines.
Resolution:
- Use only alphanumeric characters and hyphens (no underscores or spaces), max 15 characters.
- For domain-joined servers, provide domain admin credentials when prompted.
- Rename manually:
Rename-Computer -NewName <name> -Restart. - A reboot is required for the change to take effect.
Domain join failed
Cause: The server could not join the Active Directory domain. Common causes are incorrect credentials, DNS misconfiguration (cannot resolve the domain), a missing computer account, or network connectivity issues to a domain controller.
Resolution:
- Verify DNS points to a DC:
Resolve-DnsName <domain.fqdn>should return DC IP addresses. - Test DC connectivity:
Test-NetConnection -ComputerName <dc-ip> -Port 389. - Ensure the account has permission to join computers to the domain (default limit is 10 per user).
- Pre-stage the computer account in AD if the join quota is reached.
NTP synchronization failed
Cause: The Windows Time service could not synchronize with the specified NTP server. The server may be unreachable, UDP port 123 may be blocked, or the time service is not configured correctly.
Resolution:
- Test NTP server reachability:
w32tm /stripchart /computer:<ntp-server> /samples:3. - Restart the time service:
Restart-Service W32Time. - Reconfigure manually:
w32tm /config /manualpeerlist:"<server>" /syncfromflags:manual /reliable:yes /update. - Ensure UDP port 123 is open in the firewall.
Network connectivity test failed
Cause: A network connectivity test (ping, TCP connection, or DNS resolution) did not succeed. The target host may be down, a firewall may be blocking traffic, or there is a routing issue between the source and destination.
Resolution:
- Test basic connectivity:
Test-NetConnection -ComputerName <target>. - Check the local routing table:
Get-NetRouteto verify a route exists to the destination network. - Verify the default gateway is configured and reachable.
- Check Windows Firewall on both endpoints for blocking rules.
Remote Desktop configuration failed
Cause: Remote Desktop could not be enabled or configured. The registry key or firewall rule modification failed, the TermService may be disabled, or Group Policy is overriding the local configuration.
Resolution:
- Check if Group Policy is blocking RDP:
gpresult /H gpreport.htmland review Remote Desktop policies. - Manually enable via registry:
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name 'fDenyTSConnections' -Value 0. - Enable the firewall rule:
Enable-NetFirewallRule -DisplayGroup 'Remote Desktop'. - Start the service:
Set-Service TermService -StartupType Automatic; Start-Service TermService.
Network diagnostic port test failed
Cause: A TCP port connectivity test failed during network diagnostics. The target host may be unreachable, the port may be filtered by a firewall, or the socket connection timed out.
Resolution:
- Verify basic connectivity:
Test-Connection <host>. - Test the port manually:
Test-NetConnection -ComputerName <host> -Port <port>. - Check firewall rules on both source and destination.
- Increase the timeout if the target is on a high-latency link.
Network trace route failed
Cause: A traceroute operation failed during network diagnostics. The target may be unreachable, ICMP may be blocked, or the network path has too many hops.
Resolution:
- Run traceroute manually:
tracert <host>. - Check if ICMP is allowed through firewalls along the path.
- Try
Test-Connection -Traceroute <host>(PowerShell 6+). - If internal, check routing tables and gateway configuration.
Firewall profile configuration failed
Cause: A Windows Firewall profile (Domain, Private, or Public) could not be configured. The firewall service may be managed by Group Policy, the service may be stopped, or the requested state conflicts with another policy.
Resolution:
- Check if GPO controls firewall:
Get-NetFirewallProfile | Select-Object Name, PolicyStore. - Verify the firewall service:
Get-Service MpsSvc. - If managed by GPO, changes must be made at the domain policy level, not locally.
- Configure manually:
Set-NetFirewallProfile -Profile Domain -Enabled True.
Password does not meet complexity requirements
Cause: The password entered does not satisfy the local or domain password policy. Windows typically requires minimum 8 characters, with at least three of: uppercase, lowercase, digits, and special characters.
Resolution:
- Check the current policy:
net accounts(local) orGet-ADDefaultDomainPasswordPolicy(domain). - Ensure the password includes uppercase, lowercase, numbers, and special characters.
- The password must not contain the username or display name.
- Increase password length if the policy requires more than 8 characters.
Local admin account creation failed
Cause: A local administrator account could not be created. The username may already exist, may be reserved (e.g., "Administrator", "Guest"), or the password does not meet policy requirements.
Resolution:
- Check if the account already exists:
Get-LocalUser -Name <username>. - Use a unique username that is not a built-in account name.
- Ensure the password meets complexity requirements (see RS-3002).
- Create manually:
New-LocalUser -Name <user> -Password (ConvertTo-SecureString '<pass>' -AsPlainText -Force).
Defender exclusion path not found
Cause: The path specified for a Windows Defender exclusion does not exist on the filesystem. Defender requires valid, existing paths for file/folder exclusions.
Resolution:
- Verify the path exists:
Test-Path '<exclusion-path>'. - Create the directory first if it will be used later:
New-Item -ItemType Directory -Path '<path>'. - Use the full absolute path, not a relative path or environment variable.
- Add the exclusion manually:
Add-MpPreference -ExclusionPath '<path>'.
BitLocker encryption failed
Cause: BitLocker could not be enabled on the target volume. The system may lack a TPM, the volume may not meet BitLocker requirements, or the BitLocker feature is not installed.
Resolution:
- Check TPM status:
Get-Tpm. - Install the BitLocker feature:
Install-WindowsFeature BitLocker -IncludeManagementTools. - For servers without TPM, enable the "Allow BitLocker without a compatible TPM" Group Policy.
- Ensure the volume is formatted NTFS and is not a system-reserved partition.
Credential validation failed
Cause: The supplied credentials could not be validated. The username or password is incorrect, the account may be locked out or disabled, or the domain controller is unreachable for domain accounts.
Resolution:
- Verify the username format (use
DOMAIN\Useroruser@domain.fqdnfor domain accounts). - Check if the account is locked:
Get-ADUser <user> -Properties LockedOutorGet-LocalUser <user>. - Unlock if needed:
Unlock-ADAccount <user>orEnable-LocalUser <user>. - For domain accounts, confirm a domain controller is reachable.
Defender exclusion operation failed
Cause: A Windows Defender exclusion could not be added or removed. The path may not exist, the Defender service may not be running, or another security product has taken over real-time protection and disabled the Defender PowerShell module.
Resolution:
- Verify Defender is active:
Get-MpComputerStatus | Select-Object RealTimeProtectionEnabled. - Check if the path exists before adding:
Test-Path <path>. - Add exclusion manually:
Add-MpPreference -ExclusionPath '<path>'. - If a third-party AV is installed, Defender exclusions may not apply.
BitLocker recovery key backup failed
Cause: The BitLocker recovery key could not be saved to Active Directory or exported to a file. The server may not be domain-joined, AD backup may not be configured in Group Policy, or the target file path is not writable.
Resolution:
- Save manually to file:
(Get-BitLockerVolume -MountPoint C:).KeyProtector | Where-Object { $_.KeyProtectorType -eq 'RecoveryPassword' } | Select-Object -ExpandProperty RecoveryPassword. - Back up to AD:
Backup-BitLockerKeyProtector -MountPoint C: -KeyProtectorId <id>. - Ensure the server is domain-joined if using AD backup.
- Check write permissions on the target export path.
Hyper-V role not installed
Cause: A Hyper-V operation was attempted but the Hyper-V role is not installed on this server. VM management, virtual switches, and VHD operations all require Hyper-V.
Resolution:
- Install Hyper-V:
Install-WindowsFeature Hyper-V -IncludeManagementTools -Restart. - A reboot is required after installation.
- Verify hardware virtualization is enabled in BIOS/UEFI (Intel VT-x or AMD-V).
- Confirm after reboot:
Get-WindowsFeature Hyper-V | Select-Object InstallState.
Windows feature installation failed
Cause: A Windows Server feature could not be installed. The feature may not be available on this OS edition (e.g., Standard vs. Datacenter), the component store may be corrupted, or a reboot is pending from a previous installation.
Resolution:
- Check available features:
Get-WindowsFeature | Where-Object Name -like '*<feature>*'. - If a reboot is pending, restart the server and retry.
- Repair the component store:
DISM /Online /Cleanup-Image /RestoreHealth. - Check the CBS log at
C:\Windows\Logs\CBS\CBS.logfor detailed failure reasons.
MPIO feature not available
Cause: Multipath I/O (MPIO) is not installed or not available on this edition of Windows Server. MPIO is required for redundant iSCSI or Fibre Channel paths.
Resolution:
- Install MPIO:
Install-WindowsFeature Multipath-IO -Restart. - After reboot, add iSCSI support:
Enable-MSDSMAutomaticClaim -BusType iSCSI. - Verify:
Get-WindowsFeature Multipath-IO. - MPIO is available on all Server editions but must be explicitly installed.
Failover Clustering validation failed
Cause: The cluster validation tests did not pass. Common failures include networking issues between nodes, incompatible storage configurations, mismatched OS versions, or DNS resolution problems.
Resolution:
- Run validation manually:
Test-Cluster -Node <node1>,<node2> -ReportName C:\ClusterValidation. - Review the HTML validation report for specific test failures.
- Ensure all nodes run the same Windows Server version and patch level.
- Verify all nodes can resolve each other by name and all required ports are open.
Deduplication not supported on this OS
Cause: Data Deduplication is not available on this operating system. It requires Windows Server 2012 R2 or later and is not available on Windows client editions.
Resolution:
- Verify OS:
Get-ComputerInfo | Select-Object WindowsProductName. - Install the feature:
Install-WindowsFeature FS-Data-Deduplication. - Deduplication is supported on NTFS volumes only (not ReFS).
- Minimum volume size is typically 2 GB with data older than a configured age.
Storage Replica requires Server 2016+
Cause: Storage Replica was requested but is only available on Windows Server 2016 and later. On Server 2016/2019 Standard, it is limited to a single partnership with one volume up to 2 TB.
Resolution:
- Verify OS version:
[System.Environment]::OSVersion.Version. - Install the feature:
Install-WindowsFeature Storage-Replica -IncludeManagementTools -Restart. - For unlimited volumes, use Windows Server Datacenter edition.
- Ensure all partner servers run the same or compatible Server version.
Cluster creation failed
Cause: A new failover cluster could not be created. Common causes include missing prerequisites (AD computer object permissions, DNS), network misconfiguration, or validation test failures that prevent cluster formation.
Resolution:
- Run cluster validation first:
Test-Cluster -Node <node1>,<node2>. - Ensure the cluster CNO (Computer Name Object) can be created in AD — verify Create Computer Objects permission on the target OU.
- Check that all nodes have at least one common network for cluster communication.
- Review the validation report at
C:\Windows\Cluster\Reports\for specific failures. - Ensure DNS is working: all nodes must resolve each other by FQDN.
Cluster node operation failed
Cause: A cluster node operation (join, evict, pause, resume, drain) failed. The node may be unreachable, the cluster service may not be running, or workloads could not be migrated off the node before draining.
Resolution:
- Check cluster service status:
Get-Service ClusSvcon the target node. - Verify network connectivity between cluster nodes.
- For drain failures, check if VMs have anti-affinity rules or cannot migrate:
Get-ClusterGroup | Where-Object OwnerNode -eq <node>. - For eviction, ensure the node is drained first:
Suspend-ClusterNode -Name <node> -Drain.
Cluster dashboard query failed
Cause: The cluster dashboard could not retrieve cluster status information. The Failover Clustering feature may not be installed, the cluster service is stopped, or the server is not a member of a cluster.
Resolution:
- Check if server is clustered:
Get-Cluster -ErrorAction SilentlyContinue. - Verify the cluster service:
Get-Service ClusSvc. - If not clustered, the cluster dashboard is not applicable.
- If clustered, check cluster health:
Get-ClusterNode | Select-Object Name, State.
VHD download or copy failed
Cause: A VHD or VHDX file could not be downloaded from the file server or copied from the specified path. The source may be unreachable, the download timed out, the file may be locked, or there is insufficient disk space on the destination.
Resolution:
- Verify source accessibility:
Test-Path <source>orTest-NetConnection <server> -Port 443. - Check available disk space:
Get-PSDrive <drive-letter>. - If downloading, check the file server configuration in
defaults.json. - Retry the download; transient network issues may resolve on their own.
VM creation failed
Cause: The virtual machine could not be created in Hyper-V. The VM name may already exist, the specified path may be inaccessible, memory allocation may exceed host capacity, or the virtual switch does not exist.
Resolution:
- Check for name conflicts:
Get-VM -Name <name>. - Verify the VM path exists and has sufficient space.
- Confirm available host memory:
Get-VMHostNumaNode | Select-Object MemoryAvailable. - Verify the target virtual switch exists:
Get-VMSwitch.
ISO download timeout
Cause: An ISO file download did not complete within the allowed time. The file server may be slow, the network connection may be unreliable, or the ISO file is very large and the timeout is too short.
Resolution:
- Check connectivity to the file server.
- Pre-download the ISO manually and place it in the expected directory.
- Verify the download URL is correct in your configuration.
- If on a slow network, consider copying the ISO from local media or a USB drive.
Offline VHD servicing failed
Cause: Offline modifications to a VHD (injecting drivers, applying updates, modifying the registry) failed. The VHD may not have mounted correctly, the image may be corrupted, or DISM operations encountered errors.
Resolution:
- Verify the VHD mounts manually:
Mount-VHD -Path <path> -ReadOnly. - Check DISM logs at
C:\Windows\Logs\DISM\dism.logfor detailed errors. - Ensure the VHD contains a supported Windows image (not Linux or a data disk).
- Re-download or re-create the VHD if the image is corrupted.
VM checkpoint operation failed
Cause: A VM checkpoint (snapshot) could not be created, applied, or removed. The VM may be in a saved state, the storage location may be full, or the checkpoint tree is corrupted.
Resolution:
- Check VM state:
Get-VM <name> | Select-Object State. - Verify disk space at the checkpoint location: the checkpoint files can be large.
- List existing checkpoints:
Get-VMCheckpoint -VMName <name>. - If the checkpoint tree is corrupted, export the VM and re-import it to reset the tree.
VM export or import failed
Cause: A VM export or import operation failed. The destination path may be inaccessible, there may not be enough disk space, or the VM is in a state that prevents export (e.g., replicating). Import may fail if the VM GUID conflicts with an existing VM.
Resolution:
- Ensure the export destination has enough free space (VM size + memory state).
- Stop the VM or use a production checkpoint for a clean export.
- For import conflicts, use
Import-VM -Copy -GenerateNewIdto create a new unique VM. - Check for locked files if a previous export was interrupted.
Host storage path not found
Cause: The configured host storage path for VM files, VHDs, or ISOs does not exist or is not accessible. The drive may not be mounted, the folder may not have been created, or it references a stale path.
Resolution:
- Verify the path:
Test-Path <path>. - Create the directory if needed:
New-Item -ItemType Directory -Path <path>. - Update the storage path in RackStack configuration if the location has changed.
- Ensure the drive is online:
Get-Disk | Where-Object IsOffline -eq $true | Set-Disk -IsOffline $false.
Hyper-V Replica operation failed
Cause: A Hyper-V Replica operation (enable, test failover, planned failover, reverse, or remove replication) failed. The replica server may be unreachable, replication health may be in a warning/critical state, or the VM may be in an incompatible state for the requested operation.
Resolution:
- Check replication health:
Get-VMReplication -VMName <vm> | Select-Object Health, State. - Verify the replica server is reachable:
Test-NetConnection -ComputerName <replica-server> -Port 80. - Resume replication if paused:
Resume-VMReplication -VMName <vm>. - For test failover failures, ensure the test network is configured on the replica server.
VHD mount or creation failed
Cause: A VHD/VHDX file could not be mounted or created. The file may be corrupted, already mounted by another process, the target path may not exist, or there may be insufficient disk space for the requested size.
Resolution:
- Check if the VHD is already mounted:
Get-VHD -Path <path> -ErrorAction SilentlyContinue. - Verify the target folder exists and has sufficient space.
- If corrupted, try
Optimize-VHD -Path <path> -Mode Full. - Dismount any orphaned mounts:
Dismount-VHD -Path <path>.
Offline VHD registry hive operation failed
Cause: A registry hive could not be loaded from or unloaded to a mounted VHD during offline customization. The hive file may be locked by another process, the VHD may not be properly mounted, or a previous operation left the hive in a locked state.
Resolution:
- Check for orphaned hive loads:
reg query HKLM\OFFLINE_SYSTEM(if it exists, the hive is still loaded). - Unload manually:
reg unload HKLM\OFFLINE_SYSTEM. - If the VHD is still mounted, dismount it:
Dismount-VHD -Path <path>. - Ensure no other processes are accessing the VHD (check Disk Management).
No iSCSI sessions found
Cause: There are no active iSCSI sessions on this server. The iSCSI initiator service may not be running, no targets have been connected, or existing sessions have been disconnected.
Resolution:
- Check the iSCSI service:
Get-Service MSiSCSIand start it if stopped. - List target portals:
Get-IscsiTargetPortal. - Connect to a target:
Connect-IscsiTarget -NodeAddress <iqn>. - Make sessions persistent so they survive reboots:
Connect-IscsiTarget -NodeAddress <iqn> -IsPersistent $true.
Cluster validation failed
Cause: Failover Cluster validation reported critical errors. This is a prerequisite before creating or adding nodes to a cluster. Common failures include storage, networking, or system configuration mismatches between nodes.
Resolution:
- Run validation:
Test-Cluster -Node <node1>,<node2>. - Review the generated HTML report (default:
C:\Users\<user>\AppData\Local\Temp). - Fix all errors and warnings; Microsoft Support requires clean validation for cluster support.
- Common fixes: match NIC names across nodes, ensure shared storage is visible to all nodes, synchronize time.
Storage backend initialization failed
Cause: The configured storage backend (local path, SMB share, or iSCSI) could not be initialized. The path may not exist, credentials may be invalid, or the storage service is unavailable.
Resolution:
- Verify the backend type and path in your RackStack configuration.
- For SMB: test with
Test-Path \\<server>\<share>and check credentials. - For iSCSI: verify sessions are connected (see RS-6001).
- For local storage: ensure the drive is online and the path exists.
Disk initialization failed
Cause: A raw disk could not be initialized with a partition table. The disk may be read-only, in use by another process, or have a protective GPT header that needs to be cleared.
Resolution:
- List disks:
Get-Disk | Where-Object PartitionStyle -eq 'RAW'. - Initialize manually:
Initialize-Disk -Number <n> -PartitionStyle GPT. - If the disk is read-only:
Set-Disk -Number <n> -IsReadOnly $false. - Clear a disk completely (destroys data):
Clear-Disk -Number <n> -RemoveData -Confirm:$false.
Cluster shared volume unavailable
Cause: A Cluster Shared Volume (CSV) is in a failed, offline, or maintenance state. This can occur after a node failure, storage path interruption, or CSV metadata corruption.
Resolution:
- Check CSV status:
Get-ClusterSharedVolume | Select-Object Name, State. - Resume a suspended CSV:
Resume-ClusterResource <csv-name>. - Move the CSV owner to another node:
Move-ClusterSharedVolume <csv-name> -Node <node>. - Verify underlying storage connectivity (iSCSI sessions, MPIO paths, physical disk health).
Disk operation failed
Cause: A disk operation (initialize, bring online/offline, clear) failed. The disk may be in use by another process, locked by a cluster, or have a read-only attribute set. Storage controller issues or failing hardware can also cause this error.
Resolution:
- Check disk status:
Get-Disk | Select-Object Number, FriendlyName, OperationalStatus, HealthStatus. - Clear read-only:
Set-Disk -Number <n> -IsReadOnly $false. - Bring online:
Set-Disk -Number <n> -IsOffline $false. - If the disk is clustered, remove it from the cluster first or manage it from the owner node.
Partition operation failed
Cause: A partition create, delete, extend, or shrink operation failed. The disk may not have enough free space, the partition may be in use, or the operation requires unmounting the volume first.
Resolution:
- Check available space:
Get-Partition -DiskNumber <n> | Select-Object PartitionNumber, Size. - Ensure the volume is not in use by stopping services that reference it.
- For extend operations, verify contiguous unallocated space exists after the partition.
- Use
Resize-Partition -DiskNumber <n> -PartitionNumber <p> -Size <bytes>for precise sizing.
Disk cleanup operation failed
Cause: A disk cleanup operation (Disk Cleanup tool, component store cleanup, or shadow copy deletion) failed. The cleanmgr utility may not be installed (Server Core), the component store may be corrupted, or a VSS writer is in a failed state.
Resolution:
- On Server Core, install the Desktop Experience feature or use DISM directly:
DISM /Online /Cleanup-Image /StartComponentCleanup. - Check VSS writers:
vssadmin list writersand look for failed or unstable writers. - For shadow copy deletion:
vssadmin delete shadows /for=C: /oldest. - Run
sfc /scannowif the component store is corrupted.
Storage backend detection failed
Cause: Automatic storage backend detection (S2D, FC, iSCSI, SMB3, NVMeoF, Local) failed. The required PowerShell modules may not be installed, the storage service may be unavailable, or the server does not have any storage backends configured.
Resolution:
- Check available storage:
Get-Disk | Select-Object Number, FriendlyName, BusType, Size. - For S2D: verify Failover Clustering and Storage Spaces Direct are enabled.
- For FC: check HBA drivers and
Get-InitiatorPort. - Override automatic detection in
defaults.json: setStorageBackendTypetoiSCSI,FC,S2D,SMB3,NVMeoF, orLocal.
Disk rescan operation failed
Cause: A disk rescan (typically triggered during FC or iSCSI storage operations) could not complete. The storage controller driver may be unresponsive, the FC HBA may have lost connectivity, or the storage subsystem service is in a degraded state.
Resolution:
- Rescan manually:
Update-HostStorageCacheorGet-Disk | Update-Disk. - Check storage connectivity (FC link state, iSCSI sessions).
- Restart the storage subsystem if needed:
Restart-Service ShellHWDetection. - Open Disk Management (
diskmgmt.msc) and use Action > Rescan Disks.
Volume format operation failed
Cause: A volume could not be formatted with the requested file system (NTFS, ReFS). The partition may be in use, the disk may be read-only, or there is insufficient space for the file system metadata.
Resolution:
- Check if the volume is in use: close any open Explorer windows or processes accessing the drive.
- Verify disk is not read-only:
Get-Disk <number> | Select-Object IsReadOnly. - Clear read-only:
Set-Disk <number> -IsReadOnly $false. - Format manually:
Format-Volume -DriveLetter <letter> -FileSystem NTFS -Confirm:$false.
Configuration export failed
Cause: RackStack could not export the current server configuration to a file. The output path may be inaccessible, the disk may be full, or an error occurred while gathering configuration data from a Windows component.
Resolution:
- Verify the export path exists and is writable.
- Check available disk space on the target drive.
- Try exporting to a different location (e.g.,
C:\Temp). - Review the error details for which specific configuration section failed.
DC promotion failed
Cause: Active Directory Domain Controller promotion failed. Common causes include DNS misconfiguration, missing AD DS role, insufficient credentials, or a prerequisite check failure. The DSRM password may also not meet complexity requirements.
Resolution:
- Install the AD DS role first:
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools. - Ensure DNS is properly configured and the server can resolve the forest/domain name.
- Use Enterprise Admin or Domain Admin credentials for promotion.
- Check the AD DS prerequisite logs:
C:\Windows\debug\dcpromo.logandC:\Windows\debug\adprep.
Server role template apply failed
Cause: A server role template could not be fully applied. One or more features in the template failed to install, a configuration step was rejected, or the template references features not available on this OS edition.
Resolution:
- Check which features failed: review the error details for specific feature names.
- Verify the template is compatible with your Windows Server version and edition.
- Install failed features individually to isolate the problem:
Install-WindowsFeature <name>. - A reboot may be required between certain feature installations.
Scheduled task creation failed
Cause: A Windows scheduled task could not be created. The task name may conflict with an existing task, the action or trigger definition may be invalid, or the service account lacks "Log on as a batch job" rights.
Resolution:
- Check for conflicts:
Get-ScheduledTask -TaskName '<name>'. - Verify the service account:
whoamiand ensure it has the appropriate permissions. - Grant "Log on as a batch job" via Local Security Policy (
secpol.msc) if needed. - Create manually:
Register-ScheduledTask -TaskName '<name>' -Action <action> -Trigger <trigger>.
Hyper-V Replica configuration failed
Cause: Hyper-V Replica could not be configured between the primary and replica servers. The Hyper-V Replica Broker may not be configured (for clustered environments), firewall rules may block replication traffic, or certificates are not properly configured for HTTPS replication.
Resolution:
- Enable replication on the replica server:
Set-VMReplicationServer -ReplicationEnabled $true -AllowedAuthenticationType Kerberos -ReplicationAllowedFromAnyServer $true. - Open firewall:
Enable-NetFirewallRule -DisplayName 'Hyper-V Replica HTTP*'(port 80) or HTTPS (port 443). - For clusters, configure a Hyper-V Replica Broker role in Failover Cluster Manager.
- Ensure both servers can resolve each other's FQDNs.
Scheduled task operation failed
Cause: A scheduled task could not be created, modified, imported, or registered. The task XML may be malformed, the specified user account may not have "Log on as a batch job" rights, or the Task Scheduler service is not running.
Resolution:
- Check the Task Scheduler service:
Get-Service Schedule. - Validate task XML before import: open in a text editor and verify XML syntax.
- Grant batch logon rights: Local Security Policy → User Rights Assignment → "Log on as a batch job".
- For import failures, try creating the task interactively first to identify the specific error.
- Check the task path exists:
Get-ScheduledTask -TaskPath <path>(create parent folders if needed).
Active Directory prerequisite check failed
Cause: An Active Directory operation (DC promotion, replication monitoring, AD module loading) could not proceed because prerequisites were not met. The RSAT AD tools may not be installed, the server may not be domain-joined, or DNS is not configured correctly for AD operations.
Resolution:
- Install AD management tools:
Install-WindowsFeature RSAT-AD-Tools, RSAT-DNS-Server. - Verify domain membership:
(Get-CimInstance Win32_ComputerSystem).PartOfDomain. - Check DNS configuration points to a domain controller:
Resolve-DnsName <domain>. - For DC promotion, ensure a static IP is configured (not DHCP).
Agent installer not found
Cause: The agent installer package could not be found at the configured path or URL. The file may have been moved, the file server path may be incorrect, or the installer filename does not match what RackStack expects.
Resolution:
- Verify the installer path in your
defaults.jsonconfiguration. - Check that the file exists at the specified location.
- If using a file server, confirm the server is accessible and the share permissions allow read access.
- Re-download the installer and place it in the expected location.
File server unreachable
Cause: The configured file server for downloads (VHDs, ISOs, agents) is not responding. The server may be down, the network path may be blocked, or the URL/UNC path is misconfigured.
Resolution:
- Test connectivity:
Test-NetConnection -ComputerName <server> -Port <port>. - For UNC paths:
Test-Path \\<server>\<share>. - Verify the file server URL or path in
defaults.json. - Check DNS resolution:
Resolve-DnsName <server-hostname>.
Agent installation failed
Cause: The agent installer was found and executed but the installation did not succeed. The installer may require specific prerequisites, the system may need a reboot first, or a previous installation is interfering.
Resolution:
- Check the agent installer's own log files for detailed error messages.
- Uninstall any previous version of the agent before retrying.
- Verify prerequisites (e.g., .NET Framework version, Visual C++ redistributables).
- Run the installer manually in an elevated shell to see interactive error messages.
Download failed after max retries
Cause: A file download was attempted multiple times but failed on every retry. The source server may be experiencing intermittent failures, the network may be unstable, or the file may no longer exist at the specified URL.
Resolution:
- Test the download URL directly in a browser or with
Invoke-WebRequest -Uri <url> -OutFile test.tmp. - Check network stability:
Test-NetConnection -ComputerName <server>. - Verify the file still exists at the source location.
- If the server requires authentication, ensure credentials are configured correctly in
defaults.json.
Configuration
Guides
- File Server Setup
- VHD Preparation
- Storage Manager
- Storage Backends
- Cluster Management
- Hyper-V Replica
- Configuration Export
- Drift Detection & Baselines
- Health Monitoring & Trends
- Agent Management
- Server Role Templates
- AD DS Promotion
- CLI & Automation
- Monitoring Integration
- System Debloat
Runbooks
Reference