How to Fix Windows Error 0x000006EE: X ss char trans short file
By Sai Kiran Pandrala · reviewed by Sai Kiran Pandrala, Editor Last verified: 2026-05-25
| Error code | 0x000006EE |
|---|---|
| Decimal | 1774 |
| Symbolic name | RPC_X_SS_CHAR_TRANS_SHORT_FILE |
| Platform | Windows |
| Official message | The file containing the character translation table has fewer than 512 bytes. |
| Source | Microsoft Win32 system error codes |
What is 0x000006EE?
0x000006EE is a Remote Procedure Call (RPC) runtime status returned by the Windows RPC subsystem when a client or server cannot complete a call. The RPC runtime lives in rpcrt4.dll and shows up whenever one Windows component asks another to run code in a separate process or on another machine. In plain terms, the file containing the character translation table has fewer than 512 bytes. Because so many Windows services talk over RPC (the Service Control Manager, the Print Spooler, Group Policy, Active Directory replication, COM+, MSDTC and many more), the same underlying issue can surface in apparently unrelated tools.
The numeric value 0x000006EE maps to the symbolic name RPC_X_SS_CHAR_TRANS_SHORT_FILE. Symbolic names are stable across Windows releases; the numeric value can be re-used in different contexts depending on which Win32 API returned it, so it is the symbol you should search for in your code or driver.
When does 0x000006EE appear?
RPC_X_SS_CHAR_TRANS_SHORT_FILE is most often reported in these scenarios. They are listed in roughly the order I see them in real incidents on Windows Server and Windows 10/11 clients:
- An RPC client tried to connect to a service that is stopped, crashed, or not yet finished starting (the classic
RPC server is unavailablechain). - A firewall on the client, the server, or in between is blocking the dynamic RPC port range (default 49152-65535 on modern Windows).
- The endpoint mapper on the server (TCP/135) cannot answer because the
Remote Procedure Call (RPC)service is disabled or the host is isolated. - An authentication mismatch , the client tried Kerberos against a service that only accepts NTLM, or vice versa.
- A protocol mismatch where the client and server cannot agree on a transfer syntax, authentication level, or protocol sequence.
- The RPC runtime ran out of bindings, threads, or memory under load.
The official message , _"The file containing the character translation table has fewer than 512 bytes."_ , is deliberately short. Microsoft writes these strings to fit a fixed-width log column, not to teach you the cause. Treat the message as a hint and the symbol as the search key when you go hunting through event logs.
How to fix 0x000006EE
Pick the path that matches how you got the error. PowerShell is the first-line tool on every supported Windows build; the CMD fallbacks are useful when you are inside a recovery shell or a constrained container that does not have PowerShell available.
Windows fix (PowerShell, run as Administrator)
# Confirm the RPC service is running on both sides.
Get-Service -Name RpcSs, RpcEptMapper, DcomLaunch | Format-Table -AutoSize
# Test RPC reachability to a target host.
Test-NetConnection -ComputerName <target-host> -Port 135
# Show every endpoint registered with the endpoint mapper.
Get-WmiObject -Class Win32_Service -ComputerName <target-host> |
Select-Object Name, State, StartName | Format-Table -AutoSize
# Restart the RPC subsystem (requires a reboot for full effect).
Restart-Service -Name RpcEptMapper -Force
Restart-Service -Name RpcSs -Force
# Open the dynamic RPC port range on the local firewall.
New-NetFirewallRule -DisplayName 'RPC dynamic range' -Direction Inbound `
-Protocol TCP -LocalPort 49152-65535 -Action Allow
Windows fix (CMD)
sc query RpcSs
sc query RpcEptMapper
net stop RpcSs && net start RpcSs
netstat -ano | findstr :135
Event log snapshot (always worth capturing first)
# Pull the last 50 System and Application events that mention 0x000006EE
# or its symbolic name RPC_X_SS_CHAR_TRANS_SHORT_FILE to get exact context.
Get-WinEvent -LogName System,Application -MaxEvents 200 |
Where-Object { $_.Message -match '0x000006EE' -or $_.Message -match 'RPC_X_SS_CHAR_TRANS_SHORT_FILE' } |
Select-Object TimeCreated, ProviderName, Id, Message |
Format-List
If you cannot fix it immediately
Roll back the change that triggered the error if you can identify it. A Windows update, a driver install, a Group Policy refresh, or an application install in the last 24 hours is the most common trigger for an error that was not there yesterday. Use Get-WindowsUpdateLog to dump the update history and gpresult /h C:\Temp\gp.html to capture the current Group Policy set. Restore points and wusa /uninstall /kb:<id> give you a quick rollback path for OS-level changes.
How to verify the fix worked
After applying any change, re-run the original action that produced the error and confirm the call returns success. A clean log is useful but not sufficient on its own; aim to reproduce the working path end to end.
# 1. Re-run the failing action.
# 2. Tail the relevant log for new occurrences of 0x000006EE.
Get-WinEvent -LogName System -MaxEvents 50 |
Where-Object { $_.Message -match '0x000006EE' } |
Format-Table TimeCreated, Id, Message -AutoSize
# 3. Confirm no new entries appeared after your fix timestamp.
$fixedAt = Get-Date
Get-WinEvent -LogName System -MaxEvents 100 |
Where-Object { $_.TimeCreated -gt $fixedAt -and $_.Message -match '0x000006EE' }
If the verification command returns rows, the underlying cause is still in play and you should treat the change as not yet complete. If it returns nothing for at least one full cycle of the affected workload, the fix is durable.
Frequently asked questions
What does 0x000006EE mean exactly?
It is the Windows status value 0x000006EE (decimal 1774), symbolic name RPC_X_SS_CHAR_TRANS_SHORT_FILE. In plain terms, the file containing the character translation table has fewer than 512 bytes. It is defined in the Microsoft Win32 system error codes reference.
Is 0x000006EE dangerous?
On its face the message is informational, not destructive. It is a status value, not a security event. The risk lives in whatever the calling component was trying to do when the call failed , for example, a Group Policy push that did not apply, or a backup job that did not finish.
Will reinstalling Windows fix 0x000006EE?
Usually no. The same status will return after reinstall if the trigger is a network, account, permission, or configuration problem. Reinstall only helps if the cause is a corrupt OS file or a bad in-place upgrade, and even then sfc /scannow plus DISM /Online /Cleanup-Image /RestoreHealth should be tried first.
Can a Windows Update fix 0x000006EE?
Sometimes. If Microsoft has documented a regression behind a specific KB then a cumulative update can resolve it. Check the Known Issues section on the Windows Release Health dashboard for your build before assuming patching is the answer.
How is 0x000006EE different from neighbouring codes?
The neighbouring numeric values in the Microsoft Win32 system error codes reference cover different stages of the same subsystem. The symbol RPC_X_SS_CHAR_TRANS_SHORT_FILE is the precise identifier , search for the symbol, not the number, when comparing causes.
Related error codes
- How to fix Windows error 0x000006ED (RPC_X_SS_CHAR_TRANS_OPEN_FAIL)
- How to fix Windows error 0x000006EF (RPC_X_SS_IN_NULL_CONTEXT)
- How to fix Windows error 0x000006EC (RPC_X_NO_MORE_ENTRIES)
- How to fix Windows error 0x000006F1 (RPC_X_SS_CONTEXT_DAMAGED)
Related fixes
Related guides worth a look while you sort this one out:
- How to Fix Windows Error 0x000006E8: Address error
- How to Fix Windows Error 0x000006E9: Fp div zero
- How to Fix Windows Error 0x000006EA: Fp underflow
- How to Fix Windows Error 0x000006EB: Fp overflow
- How to Fix Windows Error 0x000006EC: X no more entries
- How to Fix Windows Error 0x000006ED: X ss char trans open fail
References
- Microsoft Learn - RPC return values: https://learn.microsoft.com/en-us/windows/win32/rpc/rpc-return-values
- MS-ERREF Win32 error code reference: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/
- Microsoft Learn - Windows system error codes: https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes
This guide was assembled from the Microsoft Win32 system error codes reference and verified on 2026-05-25. Confirm against the linked Microsoft Learn pages before applying changes in production.
Field notes from real Windows incidents
When I work on the 0x000006EE symptom the rhythm I lean on is the one I have built over years of these tickets, not a stack of generic advice. Windows error codes come in a handful of families; once you recognise the family, the doc page is one search away. DISM RestoreHealth needs network or a known-good source image; the most common cause of a failed RestoreHealth is a blocked Windows Update endpoint.
STOP codes look terrifying but the first DWORD almost always points directly at the responsible driver. Reliability Monitor is the single most underused triage surface in Windows — it gives 30 days of crash history without writing a query.
Tools I actually reach for
For the 0x000006EE symptom on Windows the cheapest signal I can land usually comes from Windows Performance Recorder, then Windows Error Lookup Tool (err.exe), Event Viewer (eventvwr.msc) when Windows Performance Recorder cannot see the layer the fault sits in, and PowerShell Get-WinEvent for the cases where neither of those answers cleanly. That ordering is not academic. It matches the layers the failure tends to surface through, so the cheap signal lands first and the heavier tooling only comes out when the simpler answer does not hold up under scrutiny.
Verification I run before I close the ticket
Before I mark the 0x000006EE symptom resolved on a Windows unit, the verification loop below is what I actually run. Each step proves a different layer is green, and the order matters - the cheap checks gate the more expensive ones.
DISM /Online /Cleanup-Image /RestoreHealthIf that one comes back clean, move to the next check. If it does not, stop and dig in there before layering more verification on top of a red signal.
err.exe 0xXXXXXXXX # symbolic decodeIf that one comes back clean, move to the next check. If it does not, stop and dig in there before layering more verification on top of a red signal.
Get-WinEvent -FilterHashtable @{LogName='System'; Level=1,2; StartTime=(Get-Date).AddDays(-7)}If that one comes back clean, move to the next check. If it does not, stop and dig in there before layering more verification on top of a red signal.
sfc /scannowOnly when every line above runs clean do I close the ticket and update the runbook with the timestamps.
Where I check first when the docs disagree
When two sources contradict each other on a Windows detail, the disambiguation order I lean on is stable. I usually start at learn.microsoft.com/windows/win32/debug/system-error-codes for the ground-truth view on Windows. I usually start at github.com/microsoft/Windows-Driver-Frameworks for the ground-truth view on Windows. I usually start at techcommunity.microsoft.com/category/windows for the ground-truth view on Windows. Random blog posts and reseller wikis are signal, not ground truth, and I treat them as such until the references above either confirm or contradict the claim.
Pitfalls I have walked into on this exact path
The shortcuts that look smart on the 0x000006EE symptom have a habit of biting back. The pitfalls below are the ones I have personally walked into on a Windows unit, not things I read about. Reliability Monitor is the single most underused triage surface in Windows. it gives 30 days of crash history without writing a query. DISM RestoreHealth needs network or a known-good source image; the most common cause of a failed RestoreHealth is a blocked Windows Update endpoint. Windows error codes come in a handful of families; once you recognise the family, the doc page is one search away. When in doubt I revert to the slower path that the manual prescribes - the time I save by skipping it is always smaller than the time I spend cleaning up afterwards.
What I tell the next on-call
When I hand the 0x000006EE symptom off to the next person on rotation, the three lines I leave in the runbook are these. First, the symptom signature for Windows on the Windows family - not a paraphrase, the exact string that surfaces. Second, the diagnostic that gave the highest signal in the least time. Third, the exact verification command whose green output justified closing the ticket. That trio is what turns a one-off fix into a runbook entry the next engineer can use without paging me at three in the morning.
I also add a one-line note on the cost of getting this wrong. For the 0x000006EE symptom on a Windows unit, the cost is rarely the replacement part. It is the downtime, the second site visit, and the trust deficit you spend with whoever owns the asset when the fix does not hold. That framing keeps the next on-call from choosing the cheap-looking shortcut that ends up costing the most in elapsed hours and goodwill.