NOTIMPLEMENTEDEXCEPTION is thrown when using System.IO.Pipes when building with IL2CPP

Supposedly this was fixed back in 2018.4.4f1, yet I am still getting the same error. This is preventing me from building out my software on IL2CPP and every time I need to try it on another Unity editor version, it takes roughly 8 or so hours to import.

This is a massive resource depriver and it takes days to test a single version. I am trying this on 2018.4.8f1, which is 4 versions later. These are all obviously LTS releases. I am not using the newest LTS as it has known performance issues with the animator and it will be detrimental considering I have up to 30 different characters with an animator attached on screen at once.

Here’s the patch note in 2018.4.4f1:
IL2CPP: Added support for NamedPipeClientStream on Windows platforms. (1159863, 1160512)

and here is the corresponding issue tracker thread where it also says it has been fixed:

Error printed out in output_log:

NotImplementedException: The method or operation is not implemented.
  at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName, System.IO.Pipes.PipeDirection direction, System.Int32 maxNumberOfServerInstances, System.IO.Pipes.PipeTransmissionMode transmissionMode, System.IO.Pipes.PipeOptions options, System.Int32 inBufferSize, System.Int32 outBufferSize) [0x00000] in <00000000000000000000000000000000>:0
  at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName, System.IO.Pipes.PipeDirection direction, System.Int32 maxNumberOfServerInstances, System.IO.Pipes.PipeTransmissionMode transmissionMode, System.IO.Pipes.PipeOptions options) [0x00000] in <00000000000000000000000000000000>:0
  at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName, System.IO.Pipes.PipeDirection direction, System.Int32 maxNumberOfServerInstances, System.IO.Pipes.PipeTransmissionMode transmissionMode) [0x00000] in <00000000000000000000000000000000>:0
  at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName, System.IO.Pipes.PipeDirection direction, System.Int32 maxNumberOfServerInstances) [0x00000] in <00000000000000000000000000000000>:0
  at WindowsController.PipesLoop () [0x00000] in <00000000000000000000000000000000>:0
  at UnityEngine.Canvas+WillRenderCanvases.Invoke () [0x00000] in <00000000000000000000000000000000>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <00000000000000000000000000000000>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00000] in <00000000000000000000000000000000>:0
  at UnityEngine.Canvas+WillRenderCanvases.Invoke () [0x00000] in <00000000000000000000000000000000>:0
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)

It obviously looks like the Unity devs may have only NamedPipeClientStream and not NamedPipeServerStream… however I have literally no clue why they’d do such a thing considering they’re under the same namespace.

Also, as with further IL2CPP testing today, not being able to use the Process class for Process.Start() and Proccess.GetProcessByName() is pretty terrible too. If I got all 3 of those problems fixed I think I’d be peachy keen.

I appreciate the time anyone takes to help me here as I am starting to go into panic mode due to the fact that this completely breaks the functionality I’ve spent months developing. I also need to switch from mono to IL2CPP for other reasons and this specifically is holding me back.

Thanks.

Bump

It’s likely you’re hitting another bug there. Can you report it to us via the bug reporter?

I get this error for NamedPipeClientStream with IL2CPP (- Mono works fine -) on 2019.4.22 (LTS) on an Android device:

03-20 16:03:36.924  5207  5279 E Unity   : NotImplementedException: The method or operation is not implemented.
03-20 16:03:36.924  5207  5279 E Unity   :   at System.IO.Pipes.NamedPipeClientStream..ctor (System.String serverName, System.String pipeName, System.IO.Pipes.PipeAccessRights desiredAccessRights, System.IO.Pipes.PipeOptions options, System.Security.Principal.TokenImpersonationLevel impersonationLevel, System.IO.HandleInheritability inheritability) [0x00000] in <00000000000000000000000000000000>:0
03-20 16:03:36.924  5207  5279 E Unity   :   at System.IO.Pipes.NamedPipeClientStream..ctor (System.String serverName, System.String pipeName, System.IO.Pipes.PipeDirection direction, System.IO.Pipes.PipeOptions options) [0x00000] in <00000000000000000000000000000000>:0

As @TJD269 was saying, the bug seems to have been reported and fixed before (Unity Issue Tracker - [IL2CPP] NotImplementedException is thrown when use System.IO.Pipes)

I am unsure how to proceed here. @Tautvydas-Zilys are you saying this SHOULD work? If so, would this be fixed in the 2019.4.XX LTS branch (which we are stuck to atm) if I submit a bug for this?

The original bug that was reported was specific to Windows. You should report a separate bug if you’re running into issues on Android.

On Unity 2019.4.31f1 Iam still getting this issue, fixed this by updating to Unity 2021.2.3f1

1 Like