{"record":{"id":"035b94d730969f23","repo":"gibbed/SteamAchievementManager","slug":"failed-to-create-pipe","errorCode":null,"errorMessage":"failed to create pipe","messagePattern":"failed to create pipe","errorType":"exception","errorClass":"ClientInitializeException","httpStatus":null,"severity":"error","filePath":"SAM.API/Client.cs","lineNumber":71,"sourceCode":"            {\n                Environment.SetEnvironmentVariable(\"SteamAppId\", appId.ToString(CultureInfo.InvariantCulture));\n            }\n\n            if (Steam.Load() == false)\n            {\n                throw new ClientInitializeException(ClientInitializeFailure.Load, \"failed to load SteamClient\");\n            }\n\n            this.SteamClient = Steam.CreateInterface<Wrappers.SteamClient018>(\"SteamClient018\");\n            if (this.SteamClient == null)\n            {\n                throw new ClientInitializeException(ClientInitializeFailure.CreateSteamClient, \"failed to create ISteamClient018\");\n            }\n\n            this._Pipe = this.SteamClient.CreateSteamPipe();\n            if (this._Pipe == 0)\n            {\n                throw new ClientInitializeException(ClientInitializeFailure.CreateSteamPipe, \"failed to create pipe\");\n            }\n\n            this._User = this.SteamClient.ConnectToGlobalUser(this._Pipe);\n            if (this._User == 0)\n            {\n                throw new ClientInitializeException(ClientInitializeFailure.ConnectToGlobalUser, \"failed to connect to global user\");\n            }\n\n            this.SteamUtils = this.SteamClient.GetSteamUtils004(this._Pipe);\n            if (appId > 0 && this.SteamUtils.GetAppId() != (uint)appId)\n            {\n                throw new ClientInitializeException(ClientInitializeFailure.AppIdMismatch, \"appID mismatch\");\n            }\n\n            this.SteamUser = this.SteamClient.GetSteamUser012(this._User, this._Pipe);\n            this.SteamUserStats = this.SteamClient.GetSteamUserStats013(this._User, this._Pipe);\n            this.SteamApps001 = this.SteamClient.GetSteamApps001(this._User, this._Pipe);\n            this.SteamApps008 = this.SteamClient.GetSteamApps008(this._User, this._Pipe);","sourceCodeStart":53,"sourceCodeEnd":89,"githubUrl":"https://github.com/gibbed/SteamAchievementManager/blob/de8b71048a0cee3c3e97cd8535e0f55ca86513e4/SAM.API/Client.cs#L53-L89","documentation":"Client.Initialize throws ClientInitializeException with failure code CreateSteamPipe when SteamClient.CreateSteamPipe() returns 0, meaning the Steam client could not open a communication pipe to the running Steam process. Without a pipe no further interfaces (user, user stats, apps) can be obtained.","triggerScenarios":"Calling Client.Initialize(appId) while the Steam client process is not running, is starting up, or is in a bad state so CreateSteamPipe returns a zero handle.","commonSituations":"Steam not running at all; Steam still booting after boot/login; Steam running as a different user or elevated while the app is not (or vice versa); multiple conflicting Steam instances.","solutions":["Start the Steam client and wait until it is fully logged in before initializing","Run the application and Steam under the same user and same elevation level","Restart Steam if it is hung or mid-update","Retry initialization after a short delay if Steam was just launched"],"exampleFix":"// before\nclient.Initialize(appId); // may throw CreateSteamPipe if Steam not running\n// after\nif (Process.GetProcessesByName(\"steam\").Length == 0)\n{\n    Console.Error.WriteLine(\"Start Steam first.\");\n    return 1;\n}\nclient.Initialize(appId);","handlingStrategy":"try-catch","validationCode":"var steamRunning = System.Diagnostics.Process.GetProcessesByName(\"steam\").Length > 0;","typeGuard":null,"tryCatchPattern":"try { client.Initialize(appId); }\ncatch (ClientInitializeException e) when (e.Failure == ClientInitializeFailure.CreateSteamPipe)\n{\n    // Steam not running/ready; wait and retry\n}","preventionTips":["Ensure Steam is running and fully started before initializing","Match user/elevation between Steam and your process","Add a startup wait/retry loop for freshly launched Steam"],"tags":["steam","pipe","process"],"backgroundTag":"connection-refused","analyzedSha":"de8b71048a0cee3c3e97cd8535e0f55ca86513e4","analyzedAt":"2026-09-12T09:05:06.619Z","contentChangedAt":"2026-09-12T09:05:06.619Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}