Users

All Posts (8)

avatar

jameshennessy

PSU failing to start after a server restart

avatar
avatar
avatar

Hi Ruben,

I cannot confirm if they stopped immediately, because of the schedules set, the scripts due to run 2.5 hours after the issue presented, did not run, neither did the morning and evening scripts over the weekend.

the server does not require a proxy, the DNS entry points straight to the server itself, with url filtering and reverse proxy so that the port is not required.

there is no TLS or SSL inspection, the local firewall is turned off for internal traffic.

the service account is a domain account dedicated for this function.

no proxy as far as I know, I did not set anything like that up.

as for the previous issue, restarting and network related changes had no affect, but upgrading to 2026.3.0 did fix the issue until this restart.

PSU failing to start after a server restart

avatar
avatar
avatar

just to add a little more to this,

while the portal apps are accessible and look to be working as normal.

my daily scripts attached to schedules have not run.

PSU failing to start after a server restart

avatar
avatar
avatar

Hi Ruben,

2026.3.0 was an upgrade, which was done as a result of the same issue as this, it was from version 2026.2.5

the admin and portal pages worked perfect since the upgrade.

PSU is hosted on a Windows 2025 VM, runs its PowershellUniversal service, IIS is installed along with a reverse proxy and URL rewrite

here is the log files in c:\program data\powershelluniversal\logs\PowershellHost

2026-10-02 15:36:33.347 +01:00 [ERR] PSUModulePath not set

2026-10-02 15:36:49.851 +01:00 [INF] Using object serializer: Quartz.Simpl.BinaryObjectSerializer, Quartz

2026-10-02 15:36:49.863 +01:00 [INF] Initialized Scheduler Signaller of type: Quartz.Core.SchedulerSignalerImpl

2026-10-02 15:36:49.864 +01:00 [INF] Quartz Scheduler created

2026-10-02 15:36:49.864 +01:00 [INF] RAMJobStore initialized.

2026-10-02 15:36:49.865 +01:00 [INF] Quartz Scheduler 3.14.0.0 - '9315779a-bc7c-49aa-8715-4e967985713f' with instanceId 'NON_CLUSTERED' initialized

2026-10-02 15:36:49.866 +01:00 [INF] Using thread pool 'Quartz.Simpl.DefaultThreadPool', size: 100

2026-10-02 15:36:49.868 +01:00 [INF] Using job store 'Quartz.Simpl.RAMJobStore', supports persistence: False, clustered: False

2026-10-02 15:36:49.879 +01:00 [INF] Scheduler 9315779a-bc7c-49aa-8715-4e967985713f_$_NON_CLUSTERED started.

here is log file in c:\program data\powershelluniversal\logs\system

2026-10-02 15:36:12.738 +01:00 [INF] Found development certificate. Thumbprint: {Thumbprint}

2026-10-02 15:36:12.786 +01:00 [INF] appsettings file exists: C:\ProgramData\PowerShellUniversal\appsettings.json

2026-10-02 15:36:12.858 +01:00 [INF] Using database connection string: Data Source=C:\ProgramData\UniversalAutomation\database.db

2026-10-02 15:36:14.182 +01:00 [INF] PowerShell Universal Version: 2026.3.0

2026-10-02 15:36:14.186 +01:00 [INF] OS Version: Microsoft Windows NT 10.0.26100.0

2026-10-02 15:36:14.186 +01:00 [INF] OS Architecture: x64

2026-10-02 15:36:14.186 +01:00 [INF] Process Architecture: x64

2026-10-02 15:36:14.187 +01:00 [INF] Node Name: {server name}

2026-10-02 15:36:14.270 +01:00 [INF] Starting PowerShell Universal...

2026-10-02 15:36:14.417 +01:00 [WRN] The entity type 'WorkflowDefinition' is configured to use schema 'Elsa', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.

2026-10-02 15:36:14.417 +01:00 [WRN] The entity type 'WorkflowInstance' is configured to use schema 'Elsa', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.

2026-10-02 15:36:14.462 +01:00 [INF] Acquiring an exclusive lock for migration application. See https://aka.ms/efcore-docs-migrations-lock for more information if this takes too long.

2026-10-02 15:36:14.515 +01:00 [INF] No migrations were applied. The database is already up to date.

2026-10-02 15:36:14.528 +01:00 [INF] Acquiring an exclusive lock for migration application. See https://aka.ms/efcore-docs-migrations-lock for more information if this takes too long.

2026-10-02 15:36:14.533 +01:00 [INF] No migrations were applied. The database is already up to date.

2026-10-02 15:36:14.643 +01:00 [INF] Acquiring an exclusive lock for migration application. See https://aka.ms/efcore-docs-migrations-lock for more information if this takes too long.

2026-10-02 15:36:14.659 +01:00 [INF] No migrations were applied. The database is already up to date.

2026-10-02 15:36:14.714 +01:00 [WRN] The entity type 'SerializedKeyValuePair' is configured to use schema 'Elsa', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.

2026-10-02 15:36:14.714 +01:00 [WRN] The entity type 'ActivityExecutionRecord' is configured to use schema 'Elsa', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.

2026-10-02 15:36:14.714 +01:00 [WRN] The entity type 'BookmarkQueueItem' is configured to use schema 'Elsa', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.

2026-10-02 15:36:14.714 +01:00 [WRN] The entity type 'StoredBookmark' is configured to use schema 'Elsa', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.

2026-10-02 15:36:14.714 +01:00 [WRN] The entity type 'StoredTrigger' is configured to use schema 'Elsa', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.

2026-10-02 15:36:14.714 +01:00 [WRN] The entity type 'WorkflowExecutionLogRecord' is configured to use schema 'Elsa', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.

2026-10-02 15:36:14.714 +01:00 [WRN] The entity type 'WorkflowInboxMessage' is configured to use schema 'Elsa', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.

2026-10-02 15:36:14.719 +01:00 [INF] Acquiring an exclusive lock for migration application. See https://aka.ms/efcore-docs-migrations-lock for more information if this takes too long.

2026-10-02 15:36:14.725 +01:00 [INF] No migrations were applied. The database is already up to date.

2026-10-02 15:36:14.868 +01:00 [INF] Running startup complete.

2026-10-02 15:36:14.895 +01:00 [INF] Checking for pending database migrations

2026-10-02 15:36:14.906 +01:00 [WRN] Activity descriptor Elsa.Parallel v1 was already registered for tenant null. Replacing with new descriptor

2026-10-02 15:36:14.910 +01:00 [INF] Current migration version: 3

2026-10-02 15:36:14.911 +01:00 [INF] Database migration check completed in 15ms

2026-10-02 15:36:15.504 +01:00 [INF] RPC services being provided by PowerShellUniversal.Automation.JobInvokerGrpcService: 4

2026-10-02 15:36:15.513 +01:00 [INF] RPC services being provided by PowerShellUniversal.Automation.TerminalService: 3

2026-10-02 15:36:15.523 +01:00 [INF] RPC services being provided by PowerShellUniversal.Authentication.AppTokenClient: 8

2026-10-02 15:36:15.530 +01:00 [INF] RPC services being provided by PowerShellUniversal.Authentication.IdentityClient: 6

2026-10-02 15:36:15.532 +01:00 [INF] Loading app tokens...

2026-10-02 15:36:15.532 +01:00 [WRN] Type cannot be serialized; ignoring: System.IDisposable

2026-10-02 15:36:15.532 +01:00 [WRN] Signature not recognized for PowerShellUniversal.IConfigurationSystemWatcher.Pause; method will not be bound

2026-10-02 15:36:15.532 +01:00 [WRN] Signature not recognized for PowerShellUniversal.IConfigurationSystemWatcher.CheckSum; method will not be bound

2026-10-02 15:36:15.536 +01:00 [INF] RPC services being provided by Universal.Server.Services.Configuration.ConfigurationSystemWatcher: 5

2026-10-02 15:36:15.555 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.AiAgentService: 5

2026-10-02 15:36:15.560 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.AiToolService: 5

2026-10-02 15:36:15.566 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.ComputerGroupService: 5

2026-10-02 15:36:15.573 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.DeploymentClient: 6

2026-10-02 15:36:15.578 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.EndpointDocumentationService: 5

2026-10-02 15:36:15.583 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.EndpointService: 5

2026-10-02 15:36:15.589 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.EnvironmentConfigService: 5

2026-10-02 15:36:15.594 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.EventHubService: 5

2026-10-02 15:36:15.601 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.FolderService: 5

2026-10-02 15:36:15.607 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.HealthCheckConfigService: 5

2026-10-02 15:36:15.618 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.ModuleConfigService: 5

2026-10-02 15:36:15.627 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.PortalComponentService: 5

2026-10-02 15:36:15.633 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.PortalPageService: 5

2026-10-02 15:36:15.639 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.PublishedFolderCommand: 5

2026-10-02 15:36:15.645 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.RoleService: 5

2026-10-02 15:36:15.653 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.ScheduleService: 7

2026-10-02 15:36:15.661 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.ScriptService: 7

2026-10-02 15:36:15.668 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.SettingsService: 5

2026-10-02 15:36:15.674 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.TagService: 5

2026-10-02 15:36:15.679 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.TerminalService: 5

2026-10-02 15:36:15.685 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.TriggerService: 5

2026-10-02 15:36:15.692 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.UserSessionService: 5

2026-10-02 15:36:15.695 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.UserSessionGrpcService: 1

2026-10-02 15:36:15.700 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.VariableService: 5

2026-10-02 15:36:15.720 +01:00 [INF] RPC services being provided by PowerShellUniversal.Configuration.VaultService: 5

2026-10-02 15:36:15.723 +01:00 [INF] RPC services being provided by PowerShellUniversal.Secrets.SecretManagerService: 1

2026-10-02 15:36:15.729 +01:00 [INF] RPC services being provided by PowerShellUniversal.Workflows.WorkflowActivityService: 3

2026-10-02 15:36:15.735 +01:00 [INF] RPC services being provided by PowerShellUniversal.Workflows.WorkflowModelService: 5

2026-10-02 15:36:15.751 +01:00 [INF] RPC services being provided by PowerShellUniversal.JobDataService: 14

2026-10-02 15:36:15.754 +01:00 [INF] RPC services being provided by PowerShellUniversal.BrandingService: 1

2026-10-02 15:36:15.756 +01:00 [WRN] Signature not recognized for PowerShellUniversal.Platform.ICacheService.GetCacheDataAsync; method will not be bound

2026-10-02 15:36:15.759 +01:00 [INF] RPC services being provided by PowerShellUniversal.CacheService: 5

2026-10-02 15:36:15.787 +01:00 [INF] RPC services being provided by PowerShellUniversal.PublicClient: 27

2026-10-02 15:36:15.788 +01:00 [INF] Loading app assets...

2026-10-02 15:36:15.796 +01:00 [INF] RPC services being provided by PowerShellUniversal.ComputerClient: 7

2026-10-02 15:36:15.798 +01:00 [WRN] Type cannot be serialized; ignoring: PowerShellUniversal.EndpointProfile

2026-10-02 15:36:15.798 +01:00 [WRN] Signature not recognized for PowerShellUniversal.IStatsService.TrackEndpoint; method will not be bound

2026-10-02 15:36:15.798 +01:00 [WRN] Type cannot be serialized; ignoring: PowerShellUniversal.EndpointProfile

2026-10-02 15:36:15.798 +01:00 [WRN] Signature not recognized for PowerShellUniversal.IStatsService.EndTrackEndpoint; method will not be bound

2026-10-02 15:36:15.801 +01:00 [INF] RPC services being provided by PowerShellUniversal.StatsService: 4

2026-10-02 15:36:15.802 +01:00 [INF] Initializing database...

2026-10-02 15:36:15.809 +01:00 [INF] RPC services being provided by Universal.Server.Services.DashboardGrpcClient: 7

2026-10-02 15:36:15.812 +01:00 [INF] RPC services being provided by host.TestExecutionService: 1

2026-10-02 15:36:15.819 +01:00 [INF] RPC services being provided by PowerShellUniversal.Testing.TestService: 6

2026-10-02 15:36:15.834 +01:00 [INF] RPC services being provided by PowerShellUniversal.IGitSettingsService: 12

2026-10-02 15:36:15.841 +01:00 [INF] RPC services being provided by UniversalAutomation.IPublicGitService: 3

2026-10-02 15:36:15.844 +01:00 [INF] RPC services being provided by UniversalAutomation.IPublicApiService: 1

2026-10-02 15:36:15.851 +01:00 [INF] RPC services being provided by UniversalAutomation.IPublicGitSyncService: 5

2026-10-02 15:36:15.985 +01:00 [WRN] HTTP/2 is not enabled for [::]:5000. The endpoint is configured to use HTTP/1.1 and HTTP/2, but TLS is not enabled. HTTP/2 requires TLS application protocol negotiation. Connections to this endpoint will use HTTP/1.1.

2026-10-02 15:36:16.003 +01:00 [INF] Now listening on: http://[::]:60370

2026-10-02 15:36:16.003 +01:00 [INF] Now listening on: http://[::]:5006

2026-10-02 15:36:16.003 +01:00 [INF] Now listening on: http://[::]:5000

2026-10-02 15:36:16.003 +01:00 [INF] Now listening on: https://[::]:5001

2026-10-02 15:36:16.004 +01:00 [INF] Application started. Press Ctrl+C to shut down.

2026-10-02 15:36:16.005 +01:00 [INF] Loading configuration files...

2026-10-02 15:36:16.005 +01:00 [INF] Hosting environment: Production

2026-10-02 15:36:16.005 +01:00 [INF] Content root path: C:\Program Files (x86)\Universal

2026-10-02 15:36:16.026 +01:00 [INF] Reading configuration for Vault

2026-10-02 15:36:16.068 +01:00 [INF] Reading configuration for LoggingTarget

2026-10-02 15:36:16.465 +01:00 [INF] Request starting HTTP/1.1 GET http://localhost:5000/api/v1/alive - null null

2026-10-02 15:36:16.749 +01:00 [INF] Executing endpoint 'UniversalAutomation.AliveController.Get (Universal.Server)'

2026-10-02 15:36:16.757 +01:00 [INF] Route matched with {action = "Get", controller = "Alive", page = ""}. Executing controller action with signature Microsoft.AspNetCore.Mvc.IActionResult Get() on controller UniversalAutomation.AliveController (Universal.Server).

2026-10-02 15:36:16.767 +01:00 [INF] Executing action method UniversalAutomation.AliveController.Get (Universal.Server) - Validation state: "Valid"

2026-10-02 15:36:16.929 +01:00 [INF] Executed action method UniversalAutomation.AliveController.Get (Universal.Server), returned result Microsoft.AspNetCore.Mvc.OkObjectResult in 157.1642ms.

2026-10-02 15:36:16.935 +01:00 [INF] Executing OkObjectResult, writing value of type '<>f__AnonymousType2`8[[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken={public key token}],[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken={public key token}],[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken={public key token}],[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken={public key token}],[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken={public key token}],[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken={public key token}],[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken={public key token}],[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken={public key token}]]'.

2026-10-02 15:36:17.002 +01:00 [INF] Executed action UniversalAutomation.AliveController.Get (Universal.Server) in 240.6468ms

2026-10-02 15:36:17.002 +01:00 [INF] Executed endpoint 'UniversalAutomation.AliveController.Get (Universal.Server)'

2026-10-02 15:36:17.006 +01:00 [INF] Request finished HTTP/1.1 GET http://localhost:5000/api/v1/alive - 200 null application/json; charset=utf-8 543.9705ms

2026-10-02 15:36:18.748 +01:00 [INF][UniversalAutomation.Services.UniversalConfigurationService] Reading configuration for Tag

2026-10-02 15:36:18.791 +01:00 [INF][UniversalAutomation.Services.UniversalConfigurationService] Reading configuration for Variable

2026-10-02 15:36:19.283 +01:00 [INF][UniversalAutomation.Services.UniversalConfigurationService] Reading configuration for Translation

2026-10-02 15:36:19.297 +01:00 [INF][UniversalAutomation.Services.UniversalConfigurationService] Reading configuration for Settings

2026-10-02 15:36:19.849 +01:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/1.1 GET http://localhost:5000/api/v1/alive - null null

2026-10-02 15:36:21.014 +01:00 [ERR][Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware] An unhandled exception has occurred while executing the request.

System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.

---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..

---> System.Net.Sockets.SocketException (10054): An existing connection was forcibly closed by the remote host.

--- End of inner exception stack trace ---

at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)

at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16 token)

at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](CancellationToken cancellationToken, Int32 estimatedSize)

at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)

at System.Net.Security.SslStream.ReceiveHandshakeFrameAsync[TIOAdapter](CancellationToken cancellationToken)

at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](Boolean receiveFirst, Byte[] reAuthenticationData, CancellationToken cancellationToken)

at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)

--- End of inner exception stack trace ---

at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.InjectNewHttp11ConnectionAsync(QueueItem queueItem)

at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)

at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)

at Devolutions.Licensing.DevolutionsLicenseManager.GetLicenseAsync(String serial, LicensingOptions options)

at Devolutions.Licensing.DevolutionsLicenseManager.RefreshAsync(String serial, LicensingOptions options)

at UniversalLicensing.LicenseManager.DecodeLicenseAsync(String licenseText) in D:\a\powershell-universal\powershell-universal\src\Licensing\LicenseManager.cs:line 84

at Universal.Server.Services.LicenseService.CacheLicenses(Boolean force) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Services\LicenseService.cs:line 365

at Universal.Server.Services.LicenseService.IsLicensed() in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Services\LicenseService.cs:line 542

at PowerShellUniversal.Login.OnGet(String returnUrl) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Pages\Login.cshtml.cs:line 83

at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.ActionResultHandlerMethod.Execute(Object receiver, Object[] arguments)

at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync()

at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync()

at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context)

at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)

at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync()

at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)

at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)

at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()

--- End of stack trace from previous location ---

at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)

at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)

at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger)

at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)

at PowerShellUniversal.FeatureMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Middleware\FeatureMiddleware.cs:line 42

at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()

--- End of stack trace from previous location ---

at PowerShellUniversal.DisallowedModeMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Middleware\ModeMiddleware.cs:line 25

at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()

--- End of stack trace from previous location ---

at PowerShellUniversal.CspMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Middleware\CspMiddleware.cs:line 28

at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()

--- End of stack trace from previous location ---

at Universal.Server.Middleware.RoutingMiddleware.Invoke(HttpContext httpContext, IPolicyEvaluator policyEvaluator) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Middleware\RoutingMiddleware.cs:line 176

at PowerShellUniversal.PSUMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Middleware\PowerShellMiddleware.cs:line 15

at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()

--- End of stack trace from previous location ---

at Universal.Server.Middleware.RegexApiMiddleware.Invoke(HttpContext httpContext, IApiService apiService) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Middleware\RegexApiMiddleware.cs:line 19

at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)

at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)

at Universal.Server.Middleware.WindowsAuthMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Middleware\WindowsAuthMiddleware.cs:line 58

at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()

--- End of stack trace from previous location ---

at Universal.Server.Middleware.SwaggerAuthenticationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Middleware\SwaggerAuthMiddleware.cs:line 51

at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()

--- End of stack trace from previous location ---

at Universal.Server.Middleware.McpAuthenticationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Middleware\McpAuthenticationMiddleware.cs:line 42

at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()

--- End of stack trace from previous location ---

at StackExchange.Profiling.MiniProfilerMiddleware.Invoke(HttpContext context) in C:\projects\dotnet\src\MiniProfiler.AspNetCore\MiniProfilerMiddleware.cs:line 112

at AspNetCoreRateLimit.RateLimitMiddleware`1.Invoke(HttpContext context) in D:\a\powershell-universal\powershell-universal\src\AspNetCoreRateLimit\Middleware\RateLimitMiddleware.cs:line 109

at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)

at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)

at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)

2026-10-02 15:36:32.334 +01:00 [FTL][UniversalAutomation.StartupService] Failed to start PowerShell Universal.

System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.

---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..

---> System.Net.Sockets.SocketException (10054): An existing connection was forcibly closed by the remote host.

--- End of inner exception stack trace ---

at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)

at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16 token)

at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](CancellationToken cancellationToken, Int32 estimatedSize)

at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)

at System.Net.Security.SslStream.ReceiveHandshakeFrameAsync[TIOAdapter](CancellationToken cancellationToken)

at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](Boolean receiveFirst, Byte[] reAuthenticationData, CancellationToken cancellationToken)

at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)

--- End of inner exception stack trace ---

at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.InjectNewHttp11ConnectionAsync(QueueItem queueItem)

at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)

at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)

at Devolutions.Licensing.DevolutionsLicenseManager.GetLicenseAsync(String serial, LicensingOptions options)

at Devolutions.Licensing.DevolutionsLicenseManager.RefreshAsync(String serial, LicensingOptions options)

at UniversalLicensing.LicenseManager.DecodeLicenseAsync(String licenseText) in D:\a\powershell-universal\powershell-universal\src\Licensing\LicenseManager.cs:line 84

at Universal.Server.Services.LicenseService.CacheLicenses(Boolean force) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Services\LicenseService.cs:line 365

at Universal.Server.Services.LicenseService.IsLicensed() in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Services\LicenseService.cs:line 542

at PowerShellUniversal.Automation.JobService.TriggerEvent(EventType eventType, Object metadata, String metadataName, Boolean skipLicenseCheck) in D:\a\powershell-universal\powershell-universal\src\PowerShellUniversal.Automation\JobService.cs:line 530

at UniversalAutomation.StartupService.RunStartup(CancellationToken cancellationToken) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Services\StartupService.cs:line 570

at UniversalAutomation.StartupService.TryRunStartup(CancellationToken cancellationToken) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Services\StartupService.cs:line 278

PSU failing to start after a server restart

avatar
avatar
avatar

just to add to this,

this error is only happening when trying to get to the admin or portal pages.

all of my portal apps launch and I am able to access those directly through their links.

PSU failing to start after a server restart

avatar
avatar
avatar

Hey Folks,

I am getting the following error message after restarting the VM,

PowerShell Universal failed to start. Check the logs for more information.

Failed to load PowerShell Universal. The SSL connection could not be established, see inner exception. | Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.. | An existing connection was forcibly closed by the remote host.

Server Details:

Windows Server 2025

MSI Installer - version 2026.3.0

Unable to create a PSCredential secret in platform variables

avatar
avatar
avatar

Hi Ruben,

it does appear to be a windows based issue and not PSU related.

the three apps are back up and running, after creating the credential and re-adding it to the affect environment, it took a few minutes and I could then restart affected apps.

the permissions was granted through domain GPO.

the permissions were not there previously, but I do believe the credential was originally added when I was testing after first install and the same account was used to run the overall service.

there was an issue with logon to the server earlier in the day, where it seems the account half logged onto the server and I was just presented with a blank screen when trying after, so I forced a restart and the actual issue presented.

main take away is,

logon rights as a batch job seems to be needed for saved credential secrets.

Unable to create a PSCredential secret in platform variables

avatar
avatar
avatar

Ruben you are a genius!

I have added the permission of logon as a service to the affected credential with no change in behaviour.

I then added logon as a batch job which now allows me to authenticate and add the credential in the PSUSecretStore

Exact version is 2026.2.5

Hosted on Windows Service/MSI

Windows Server version: 2025 Standard 24H2

DB Type is SQL Lite

Domain Service account is running the service

Identity has not changed since install

Production environment with 5 apps, 3 currently affected

Please see the windows event log for the failed logon,

it appears the service account tries to authenticate the credential and fails,

An account failed to log on.

Subject:

Security ID: Correct Domain\SA_PSU_Service

Account Name: SA_PSU_Service

Account Domain: Correct Domain

Logon ID: 0x20CFBBC

Logon Type: 4

Account For Which Logon Failed:

Security ID: NULL SID

Account Name: Username

Account Domain: Correct Domain

Failure Information:

Failure Reason: The user has not been granted the requested logon type at this machine.

Status: 0xC000015B

Sub Status: 0x0

Process Information:

Caller Process ID: 0x2d74

Caller Process Name: C:\Program Files (x86)\Universal\Universal.Server.exe

Network Information:

Workstation Name: ServerName

Source Network Address: -

Source Port: -

Detailed Authentication Information:

Logon Process: Advapi

Authentication Package: Negotiate

Transited Services: -

Package Name (NTLM only): -

Key Length: 0

This event is generated when a logon request fails. It is generated on the computer where access was attempted.

The Subject fields indicate the account on the local system which requested the logon. This is most commonly a service such as the Server service, or a local process such as Winlogon.exe or Services.exe.

The Logon Type field indicates the kind of logon that was requested. The most common types are 2 (interactive) and 3 (network).

The Process Information fields indicate which account and process on the system requested the logon.

The Network Information fields indicate where a remote logon request originated. Workstation name is not always available and may be left blank in some cases.

The authentication information fields provide detailed information about this specific logon request.

- Transited services indicate which intermediate services have participated in this logon request.

- Package name indicates which sub-protocol was used among the NTLM protocols.

- Key length indicates the length of the generated session key. This will be 0 if no session key was requested.

Unable to create a PSCredential secret in platform variables

avatar
avatar
avatar

Hi Folks,

I was running 2026.2.0 and suddenly after a server restart some of my portal apps wouldn't start up,

I traced this down to my run as account in the environment.

when I tried to re-enter the username and password, it failed to validate.

I have tried to recreate them, and even different accounts, yet it continues to fail to validate.

I have updated now to version 2026.2.6

same issue persists.

I have tried domain\username

username

username@domain

neither work.

process is:

I go to platform > variables > create secret > select PSCredential > enter username and password and hit validate.

failed toast message appears.

Server is a member of the domain, and account is a member of the same domain.

is there anything that can be done?

1 - 8 of 8 items