Unity-Technologies/UnityCsReference · error · NotSupportedException

The Module Manager is deprecated

Error message

The Module Manager is deprecated

What it means

ShowPackageManagerWindow is marked Obsolete(error:true) and throws NotSupportedException because the legacy 'Module Manager' window was removed and replaced by the Package Manager. The method body exists only to fail loudly for old callers.

Source

Thrown at Editor/Mono/InternalEditorUtility.bindings.cs:1237

        internal static PrecompiledAssembly[] GetUnityAssemblies(bool buildingForEditor, BuildTarget target)
        {
            return GetUnityAssembliesInternal(buildingForEditor, target);
        }

        [FreeFunction("GetUnityAssembliesManaged")]
        [return: UnityMarshalAs(NativeType.ScriptingObjectPtr)]
        extern private static PrecompiledAssembly[] GetUnityAssembliesInternal(bool buildingForEditor, BuildTarget target);

        [FreeFunction("GetPrecompiledAssemblyPathsManaged")]
        [return: UnityMarshalAs(NativeType.ScriptingObjectPtr)]
        extern internal static string[] GetPrecompiledAssemblyPaths();

        [FreeFunction("GetEditorAssembliesPath")]
        extern internal static string GetEditorScriptAssembliesPath();

        [Obsolete("The Module Manager is deprecated", error: true)]
        [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static void ShowPackageManagerWindow() { throw new NotSupportedException("The Module Manager is deprecated"); }

        // For testing Vector2 marshalling
        [FreeFunction("InternalEditorUtilityBindings::PassAndReturnVector2")]
        extern public static Vector2 PassAndReturnVector2(Vector2 v);

        // For testing Color32 marshalling
        [FreeFunction("InternalEditorUtilityBindings::PassAndReturnColor32")]
        extern public static Color32 PassAndReturnColor32(Color32 c);

        [FreeFunction("InternalEditorUtilityBindings::SaveCursorToFile")]
        extern public static bool SaveCursorToFile(string path, Texture2D image, Vector2 hotSpot);

        [FreeFunction("InternalEditorUtilityBindings::SaveCursorToInMemoryResource")]
        extern internal static bool SaveCursorToInMemoryResource(Texture2D image, Vector2 hotSpot, ushort cursorDataResourceId, IntPtr cursorDirectoryBuffer, uint cursorDirectoryBufferSize, IntPtr cursorDataBuffer, uint cursorDataBufferSize);

        [FreeFunction("GetScriptCompilationDefines")]
        extern internal static string[] GetCompilationDefines(EditorScriptCompilationOptions options, BuildTarget target, int subtarget, ApiCompatibilityLevel apiCompatibilityLevel, string[] extraDefines = null);

View on GitHub (pinned to 225b0fbdb5)

Solutions

  1. Replace the call with the Package Manager API: window = EditorWindow.GetWindow<PackageManagerWindow>() or open it via the standard menu path.
  2. Remove dead editor code that referenced the module manager.
  3. Update third-party packages to versions compatible with the current Unity major version.

Example fix

// before
InternalEditorUtility.ShowPackageManagerWindow();

// after
EditorWindow.GetWindow<UnityEditor.PackageManager.UI.PackageManagerWindow>();
Defensive patterns

Strategy: validation

Validate before calling

// Do not call ShowPackageManagerWindow; open the Package Manager window instead.
EditorWindow.GetWindow<UnityEditor.PackageManager.UI.PackageManagerWindow>();

Prevention

When it happens

Trigger: Any code calling InternalEditorUtility.ShowPackageManagerWindow() — old editor scripts, menu items, or third-party packages that opened the module manager programmatically.

Common situations: Upgrading a project from a Unity version that had the Module Manager. A legacy editor extension that wires a menu item or button to this call.

Related errors


AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13). Data as JSON: /api/errors/8942ab953e9a5720. Report an issue: GitHub.