After recent updates to Octopus Deploy to https://octopus.com/downloads/2023.1.10766

After recent updates to Octopus Deploy to Download: 2023.1.10766 - Octopus Deploy we are unable to add more users so login to OKTA fails. Seems to be requiring display name now where as before it did not. Looks like there is not an config for display name claim. I guess Octa config expects that to be present, but it used to work without it.
recent update made display name required and we need to map it to a claim in Octa Plugin Config
023-06-22 16:17:05.0026 6088 408 INFO “Display Name is required”
Octopus.Core.Model.Exceptions.DomainException: Display Name is required
at Octopus.Core.Model.Users.User.ChangeDisplayName(String displayName) in ./source/Octopus.Core/Model/Users/User.cs:line 334
at Octopus.Core.Repositories.UserStore.CreateUserInternal(Func2 getTransaction, String username, String displayName, String emailAddress, IEnumerable1 identities, ProviderUserGroups providerGroups, String password, Boolean isService, IDomainEventBroker domainEventBroker, INonThrottledClusterWideMutex mutex, DisposableCollection disposables, CancellationToken cancellationToken) in ./source/Octopus.Core/Repositories/UserStore.cs:line 499
at Octopus.Core.Repositories.UserStore.CreateInternal(Func2 getTransaction, String username, String displayName, String emailAddress, CancellationToken cancellationToken, ProviderUserGroups providerGroups, IEnumerable1 identities, Boolean isService, String password, IDomainEventBroker domainEventBroker, INonThrottledClusterWideMutex mutex, DisposableCollection disposables) in ./source/Octopus.Core/Repositories/UserStore.cs:line 324
at Octopus.Core.Repositories.UserStore.<>c__DisplayClass13_0.<b__0>d.MoveNext() in ./source/Octopus.Core/Repositories/UserStore.cs:line 219
— End of stack trace from previous location —
at Octopus.Server.Infrastructure.Orchestration.UnitsOfWork.UnitOfWorkExecutor.<>c__DisplayClass7_04.<<Execute>b__0>d.MoveNext() in ./source/Octopus.Server/Infrastructure/Orchestration/UnitsOfWork/UnitOfWorkExecutor.cs:line 115 --- End of stack trace from previous location --- at Octopus.Core.Infrastructure.UnitsOfWork.UnitOfWorkExtensionMethods.Do(IUnitOfWork unitOfWork, Func1 action, CancellationToken cancellationToken, String name) in ./source/Octopus.Core/Infrastructure/UnitsOfWork/UnitOfWorkExtensionMethods.cs:line 92
at Octopus.Core.Infrastructure.UnitsOfWork.UnitOfWorkExtensionMethods.Do(IUnitOfWork unitOfWork, Func1 action, CancellationToken cancellationToken, String name) in ./source/Octopus.Core/Infrastructure/UnitsOfWork/UnitOfWorkExtensionMethods.cs:line 92 at Octopus.Server.Infrastructure.Orchestration.UnitsOfWork.UnitOfWorkExecutor.Execute[T1,T2,T3,T4](Func6 action, CancellationToken cancellationToken, String name) in ./source/Octopus.Server/Infrastructure/Orchestration/UnitsOfWork/UnitOfWorkExecutor.cs:line 118
at Nito.AsyncEx.Synchronous.TaskExtensions.WaitAndUnwrapException(Task task)
at Octopus.Core.Repositories.UserStore.Create(String username, String displayName, String emailAddress, CancellationToken cancellationToken, ProviderUserGroups providerGroups, IEnumerable1 identities, ApiKeyDescriptor apiKeyDescriptor, Boolean isService, String password) in ./source/Octopus.Core/Repositories/UserStore.cs:line 195 at Octopus.Server.Extensibility.Authentication.OpenIDConnect.Common.Web.UserService.GetOrCreateUser(UserResource userResource, String[] groups, String providerName, IIdentityCreator identityCreator, Boolean allowAutoUserCreation, CancellationToken cancellationToken) at Octopus.Server.Extensibility.Authentication.OpenIDConnect.Common.Web.UserAuthenticatedAction3.ExecuteAsync(IOctoRequest request)
at Octopus.Server.Extensibility.AnonymousWhenEnabledAsyncActionInvoker2.Execute(IOctoRequest request, CancellationToken token) in ./source/Octopus.Server/Extensibility/AnonymousWhenEnabledAsyncActionInvoker.cs:line 44 at Octopus.Server.Web.Controllers.LegacyExtensibility.ExtensibilityController1.Invocation(CancellationToken cancellationToken) in ./source/Octopus.Server/Web/Controllers/LegacyExtensibility/ExtensibilityController.cs:line 58
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.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.g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Octopus.Server.Web.Middleware.BoundaryTrailerRewriteMiddleware.Invoke(HttpContext context, IAutomationContext automationContext) in ./source/Octopus.Server/Web/Middleware/BoundaryTrailerRewriteMiddleware.cs:line 44
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Octopus.Server.Web.UnitOfWorkMiddleware.InvokeAsync(HttpContext httpContext, IUnitOfWork unitOfWork) in ./source/Octopus.Server/Web/UnitOfWorkMiddleware.cs:line 46
at Octopus.Server.Web.UnitOfWorkMiddleware.InvokeAsync(HttpContext httpContext, IUnitOfWork unitOfWork) in ./source/Octopus.Server/Web/UnitOfWorkMiddleware.cs:line 46
at Octopus.Server.Web.Middleware.OctopusClientOldVersionWarningMiddleware.InvokeAsync(HttpContext context, IAutomationContext automationContext) in ./source/Octopus.Server/Web/Middleware/OctopusClientOldVersionWarningMiddleware.cs:line 52
at Octopus.Server.Web.Middleware.DynamicContentHeadersMiddleware.InvokeAsync(HttpContext context) in ./source/Octopus.Server/Web/Middleware/DynamicContentHeadersMiddleware.cs:line 48
at Octopus.Server.Web.Middleware.MaintenanceModeMiddleware.InvokeAsync(HttpContext context) in ./source/Octopus.Server/Web/Middleware/MaintenanceModeMiddleware.cs:line 59
at Octopus.Server.Web.Middleware.OctopusAuthenticationMiddleware.InvokeAsync(HttpContext context, IUserAuthenticator userAuthenticator, IAuthCookieService authCookieService, IWebAuthCache authCache, ILogger logger) in ./source/Octopus.Server/Web/Middleware/OctopusAuthenticationMiddleware.cs:line 58
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Octopus.Server.Web.Middleware.LegacyRequestLoggerMiddleware.InvokeAsync(HttpContext context) in ./source/Octopus.Server/Web/Middleware/LegacyRequestLoggerMiddleware.cs:line 41
at Octopus.Server.Web.Middleware.TelemetryMiddleware.InvokeAsync(HttpContext context) in ./source/Octopus.Server/Web/Middleware/TelemetryMiddleware.cs:line 76
at Octopus.Server.Web.Middleware.ErrorHandlingMiddleware.InvokeAsync(HttpContext context) in ./source/Octopus.Server/Web/Middleware/ErrorHandlingMiddleware.cs:line 117

Hi @Paul.Christopher

Thanks for getting in touch with regarding you issue today.

We have seen this in the past with the recent update and our engineers are looking at patching this.

A workaround for now is to manually create the Octopus user account in the Octopus UI ensuring the account has the Display Name set and the external login information for Okta.

We will keep you updated on any progress the engineers make.

Kind Regards,
Dom.

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.