Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Edit Collection/Save throws error. Includes changing names of collection and access permissions. #2788

Open
1 task done
Tracked by #2480
cvondra opened this issue Mar 9, 2023 · 9 comments
Open
1 task done
Tracked by #2480
Labels
bug bw-unified-deploy An Issue related to Bitwarden unified deployment

Comments

@cvondra
Copy link

cvondra commented Mar 9, 2023

Steps To Reproduce

From the current /dev build.

  1. Go to Vault, Collections, click on the collection.
  2. Click down carrot next to collection name in main pane. Choose edit info or access.
  3. Make change to collection OR access like adding user access.
  4. Click on Save

Expected Result

Expect change/modification to save.

Actual Result

Error is thrown.

From Console:

   PUT https://bitwarden.xxx.org/api/organizations/5fab9e5a-a827-42e6-955f-af8a00e5a217/collections/21c7996d-bdaa-468b-8450-af8a00e5a27f 500

(anonymous) @ zone.js:1586
D.i. @ zone.js:1022
nativeFetch @ api.service.ts:1783
(anonymous) @ api.service.ts:1779
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
Promise.then (async)
y @ zone.js:608
m @ zone.js:619
t.scheduleTask @ zone.js:433
onScheduleTask @ zone.js:320
t.scheduleTask @ zone.js:423
e.scheduleTask @ zone.js:257
e.scheduleMicroTask @ zone.js:277
C @ zone.js:1316
P @ zone.js:1253
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
Promise.then (async)
(anonymous) @ zone.js:1577
t @ zone.js:1351
B.t.then @ zone.js:1576
P @ zone.js:1220
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
l @ main.83c78a01bee272ba69f1.js:1
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
Promise.then (async)
y @ zone.js:608
m @ zone.js:619
t.scheduleTask @ zone.js:433
onScheduleTask @ zone.js:320
t.scheduleTask @ zone.js:423
e.scheduleTask @ zone.js:257
e.scheduleMicroTask @ zone.js:277
C @ zone.js:1316
P @ zone.js:1253
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
Promise.then (async)
(anonymous) @ zone.js:1577
t @ zone.js:1351
B.t.then @ zone.js:1576
P @ zone.js:1220
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
l @ main.83c78a01bee272ba69f1.js:1
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
Ks @ main.83c78a01bee272ba69f1.js:1
hmac @ main.83c78a01bee272ba69f1.js:1
(anonymous) @ encrypt.service.implementation.ts:174
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
Promise.then (async)
y @ zone.js:608
m @ zone.js:619
t.scheduleTask @ zone.js:433
onScheduleTask @ zone.js:320
t.scheduleTask @ zone.js:423
e.scheduleTask @ zone.js:257
e.scheduleMicroTask @ zone.js:277
C @ zone.js:1316
P @ zone.js:1253
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
Promise.then (async)
(anonymous) @ zone.js:1577
t @ zone.js:1351
B.t.then @ zone.js:1576
P @ zone.js:1220
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
l @ main.83c78a01bee272ba69f1.js:1
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
Promise.then (async)
y @ zone.js:608
m @ zone.js:619
t.scheduleTask @ zone.js:433
onScheduleTask @ zone.js:320
t.scheduleTask @ zone.js:423
e.scheduleTask @ zone.js:257
e.scheduleMicroTask @ zone.js:277
C @ zone.js:1316
P @ zone.js:1253
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
Promise.then (async)
(anonymous) @ zone.js:1577
t @ zone.js:1351
B.t.then @ zone.js:1576
P @ zone.js:1220
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
l @ main.83c78a01bee272ba69f1.js:1
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
Ks @ main.83c78a01bee272ba69f1.js:1
aesEncrypt @ main.83c78a01bee272ba69f1.js:1
(anonymous) @ encrypt.service.implementation.ts:168
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
e.invokeTask @ zone.js:529
b @ zone.js:1727
w @ zone.js:1758
x @ zone.js:1794
consoleLog.service.ts:51

   Async submit exception: [object Object]

write @ consoleLog.service.ts:51
error @ consoleLog.service.ts:28
(anonymous) @ bit-submit.directive.ts:44
(anonymous) @ catchError.ts:117
o._error @ OperatorSubscriber.ts:79
t.error @ Subscriber.ts:91
(anonymous) @ innerFrom.ts:94
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
Promise.then (async)
y @ zone.js:608
m @ zone.js:619
t.scheduleTask @ zone.js:433
onScheduleTask @ zone.js:320
t.scheduleTask @ zone.js:423
e.scheduleTask @ zone.js:257
e.scheduleMicroTask @ zone.js:277
C @ zone.js:1316
P @ zone.js:1253
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
Promise.then (async)
(anonymous) @ zone.js:1577
t @ zone.js:1351
B.t.then @ zone.js:1576
P @ zone.js:1220
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
l @ main.83c78a01bee272ba69f1.js:1
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
ei @ main.83c78a01bee272ba69f1.js:1
handleError @ main.83c78a01bee272ba69f1.js:1
(anonymous) @ api.service.ts:2044
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
Promise.then (async)
y @ zone.js:608
m @ zone.js:619
t.scheduleTask @ zone.js:433
onScheduleTask @ zone.js:320
t.scheduleTask @ zone.js:423
e.scheduleTask @ zone.js:257
e.scheduleMicroTask @ zone.js:277
C @ zone.js:1316
P @ zone.js:1253
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
Promise.then (async)
(anonymous) @ zone.js:1577
t @ zone.js:1351
B.t.then @ zone.js:1576
P @ zone.js:1220
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
l @ main.83c78a01bee272ba69f1.js:1
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
Promise.then (async)
y @ zone.js:608
m @ zone.js:619
t.scheduleTask @ zone.js:433
onScheduleTask @ zone.js:320
t.scheduleTask @ zone.js:423
e.scheduleTask @ zone.js:257
e.scheduleMicroTask @ zone.js:277
C @ zone.js:1316
P @ zone.js:1253
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
Promise.then (async)
(anonymous) @ zone.js:1577
t @ zone.js:1351
B.t.then @ zone.js:1576
P @ zone.js:1220
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
l @ main.83c78a01bee272ba69f1.js:1
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
Promise.then (async)
y @ zone.js:608
m @ zone.js:619
t.scheduleTask @ zone.js:433
onScheduleTask @ zone.js:320
t.scheduleTask @ zone.js:423
e.scheduleTask @ zone.js:257
e.scheduleMicroTask @ zone.js:277
C @ zone.js:1316
P @ zone.js:1253
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
Promise.then (async)
(anonymous) @ zone.js:1577
t @ zone.js:1351
B.t.then @ zone.js:1576
P @ zone.js:1220
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
l @ main.83c78a01bee272ba69f1.js:1
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
Ks @ main.83c78a01bee272ba69f1.js:1
hmac @ main.83c78a01bee272ba69f1.js:1
(anonymous) @ encrypt.service.implementation.ts:174
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
Promise.then (async)
y @ zone.js:608
m @ zone.js:619
t.scheduleTask @ zone.js:433
onScheduleTask @ zone.js:320
t.scheduleTask @ zone.js:423
e.scheduleTask @ zone.js:257
e.scheduleMicroTask @ zone.js:277
C @ zone.js:1316
P @ zone.js:1253
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
Promise.then (async)
(anonymous) @ zone.js:1577
t @ zone.js:1351
B.t.then @ zone.js:1576
P @ zone.js:1220
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
l @ main.83c78a01bee272ba69f1.js:1
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
Promise.then (async)
y @ zone.js:608
m @ zone.js:619
t.scheduleTask @ zone.js:433
onScheduleTask @ zone.js:320
t.scheduleTask @ zone.js:423
e.scheduleTask @ zone.js:257
e.scheduleMicroTask @ zone.js:277
C @ zone.js:1316
P @ zone.js:1253
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
Promise.then (async)
(anonymous) @ zone.js:1577
t @ zone.js:1351
B.t.then @ zone.js:1576
P @ zone.js:1220
(anonymous) @ zone.js:1169
(anonymous) @ zone.js:1185
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
l @ main.83c78a01bee272ba69f1.js:1
(anonymous) @ main.83c78a01bee272ba69f1.js:1
t @ zone.js:1351
Ks @ main.83c78a01bee272ba69f1.js:1
aesEncrypt @ main.83c78a01bee272ba69f1.js:1
(anonymous) @ encrypt.service.implementation.ts:168
r @ main.83c78a01bee272ba69f1.js:1
t.invoke @ zone.js:409
onInvoke @ ng_zone.ts:418
t.invoke @ zone.js:408
e.run @ zone.js:169
(anonymous) @ zone.js:1326
t.invokeTask @ zone.js:443
onInvokeTask @ ng_zone.ts:403
t.invokeTask @ zone.js:442
e.runTask @ zone.js:214
b @ zone.js:632
e.invokeTask @ zone.js:529
b @ zone.js:1727
w @ zone.js:1758
x @ zone.js:1794

Screenshots or Videos

Web capture_8-3-2023_201246_bitwarden

Additional Context

No response

Githash Version

"gitHash":"465681c7-dirty"

Environment Details

Synology DSM 7.1.1
Docker
INTEL Celeron J4125
20GB

Database Image

mariadb:10

Issue-Link

#2480

Issue Tracking Info

  • I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
@cvondra cvondra added bug bw-unified-deploy An Issue related to Bitwarden unified deployment labels Mar 9, 2023
@TopMegaCool
Copy link

TopMegaCool commented Apr 3, 2023

@YetAnotherSimon
Copy link

Hi, we experience the same issue, I found this in the api.log

fail: Bit.Api.Utilities.ExceptionHandlerFilterAttribute[0]
      => [...] => Bit.Api.Controllers.CollectionsController.Put (Api)
      An exception was thrown while attempting to evaluate a LINQ query parameter expression. See the inner exception for more information. To show additional information call 'DbContextOptionsBuilder.EnableSensitiveDataLogging'.
      System.InvalidOperationException: An exception was thrown while attempting to evaluate a LINQ query parameter expression. See the inner exception for more information. To show additional information call 'DbContextOptionsBuilder.EnableSensitiveDataLogging'.
       ---> System.ArgumentNullException: Value cannot be null. (Parameter 'source')
         at System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
         at System.Linq.Enumerable.Select[TSource,TResult](IEnumerable`1 source, Func`2 selector)
         at lambda_method1031(Closure )
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.GetValue(Expression expression, String& parameterName)
         --- End of inner exception stack trace ---
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.GetValue(Expression expression, String& parameterName)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Evaluate(Expression expression, Boolean generateParameter)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
         at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Linq.Expressions.ExpressionVisitor.VisitLambda[T](Expression`1 node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Linq.Expressions.ExpressionVisitor.VisitUnary(UnaryExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
         at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
         at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
         at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
         at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
         at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
         at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
         at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
         at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
         at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.Visit(Expression expression)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.ExtractParameters(Expression expression, Boolean clearEvaluatedValues)
         at Microsoft.EntityFrameworkCore.Query.Internal.ParameterExtractingExpressionVisitor.ExtractParameters(Expression expression)
         at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExtractParameters(Expression query, IParameterValues parameterValues, IDiagnosticsLogger`1 logger, Boolean parameterize, Boolean generateContextAccessors)
         at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteAsync[TResult](Expression query, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.ExecuteAsync[TResult](Expression expression, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1.GetAsyncEnumerator(CancellationToken cancellationToken)
         at System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator()
         at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
         at Bit.Infrastructure.EntityFramework.Repositories.CollectionRepository.ReplaceCollectionGroupsAsync(DatabaseContext dbContext, Collection collection, IEnumerable`1 groups) in /source/src/Infrastructure.EntityFramework/Repositories/CollectionRepository.cs:line 436
         at Bit.Infrastructure.EntityFramework.Repositories.CollectionRepository.ReplaceAsync(Collection collection, IEnumerable`1 groups, IEnumerable`1 users) in /source/src/Infrastructure.EntityFramework/Repositories/CollectionRepository.cs:line 348
         at Bit.Core.Services.CollectionService.SaveAsync(Collection collection, IEnumerable`1 groups, IEnumerable`1 users, Nullable`1 assignUserId) in /source/src/Core/Services/Implementations/CollectionService.cs:line 82
         at Bit.Api.Controllers.CollectionsController.Put(Guid orgId, Guid id, CollectionRequestModel model) in /source/src/Api/Controllers/CollectionsController.cs:line 172
         at lambda_method684(Closure , Object )
         at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>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>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

@justindbaur
Copy link
Member

Hey all, I can not recreate this with the latest from master. I'm hoping that someone another one of our fixes may have resolved this. The beta tag just got update earlier today. If you could try and pull that update image and see if you still get this that would be great. Thanks!

@maltegl
Copy link

maltegl commented May 15, 2023

I have the same error that is displayed and ends in a 500 Error.

However, I find a different message in the error log. Installed is currently 2023.4.3 as self hosting instance.

2023-05-15 08:44:14.091 +00:00 [Error] Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
   at System.Guid.GuidResult.SetFailure(Boolean overflow, String failureMessageID)
   at System.Guid.TryParseExactD(ReadOnlySpan`1 guidString, GuidResult& result)
   at System.Guid.TryParseGuid(ReadOnlySpan`1 guidString, GuidResult& result)
   at System.Guid..ctor(String g)
   at Bit.Api.Models.Request.SelectionReadOnlyRequestModel.ToSelectionReadOnly() in /home/runner/work/server/server/src/Api/Models/Request/SelectionReadOnlyRequestModel.cs:line 15
   at Bit.Api.Controllers.OrganizationUsersController.<>c.<Put>b__21_0(SelectionReadOnlyRequestModel c) in /home/runner/work/server/server/src/Api/Controllers/OrganizationUsersController.cs:line 284
   at System.Linq.Enumerable.SelectListIterator`2.MoveNext()
   at Bit.Infrastructure.Dapper.DapperHelpers.ToArrayTVP(IEnumerable`1 values) in /home/runner/work/server/server/src/Infrastructure.Dapper/DapperHelpers.cs:line 46
   at Bit.Infrastructure.Dapper.Repositories.OrganizationUserRepository.ReplaceAsync(OrganizationUser obj, IEnumerable`1 collections) in /home/runner/work/server/server/src/Infrastructure.Dapper/Repositories/OrganizationUserRepository.cs:line 326
   at Bit.Core.Services.OrganizationService.SaveUserAsync(OrganizationUser user, Nullable`1 savingUserId, IEnumerable`1 collections, IEnumerable`1 groups) in /home/runner/work/server/server/src/Core/Services/Implementations/OrganizationService.cs:line 1552
   at Bit.Api.Controllers.OrganizationUsersController.Put(String orgId, String id, OrganizationUserUpdateRequestModel model) in /home/runner/work/server/server/src/Api/Controllers/OrganizationUsersController.cs:line 283
   at lambda_method124(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>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>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

@maltegl
Copy link

maltegl commented Jun 2, 2023

With Version 2023.5.0 my reported problem is fixed. can anyone else confirm this as well?

@danepowell
Copy link
Contributor

I'm seeing this on Version 2023.8.2, running the bitwarden/self-host:beta docker image.

@vangorra
Copy link

I've had this issue since installing bitwarden in March. The issue still persists with the latest docker version.

$ sudo docker images | grep bitwarden
bitwarden/self-host              beta        7b01a60465b1   13 days ago     800MB

This is a major functionality bug that has been blocking daily use cases. Since proton's password manager appears feature complete, we'll have to move to that service instead.

@vangorra
Copy link

I was able reproduce the issue on a clean container with clean file system using the following config:

version: '2'
services:
  bitwarden:
    depends_on:
      - mariadb
    image: bitwarden/self-host:beta
    restart: 'unless-stopped'
    ports:
      - "7080:8080"
    volumes:
      - ./container_data/bitwarden/bitwarden:/etc/bitwarden
    environment:
      BW_DOMAIN: bitwarden.local

      BW_DB_PROVIDER: mariadb
      BW_DB_SERVER: mariadb
      BW_DB_DATABASE: bitwarden_vault
      BW_DB_USERNAME: bitwarden
      BW_DB_PASSWORD: RickRollThis
      
      BW_INSTALLATION_ID: ${BW_INSTALLATION_ID}
      BW_INSTALLATION_KEY: ${BW_INSTALLATION_KEY}

      globalSettings__mail__replyToEmail: 'noreply@bitwarden.local'
      globalSettings__mail__smtp__host: 'smtp4dev'
      globalSettings__mail__smtp__port: '25'
      globalSettings__mail__smtp__ssl: 'false'
      globalSettings__mail__smtp__username: 'noreply@bitwarden.local'
      globalSettings__mail__smtp__password: 'SLDKF#039ru'

      adminSettings__admins: ${adminSettings__admins}
  mariadb:
    image: mariadb:10
    restart: 'unless-stopped'
    volumes:
      - ./container_data/mariadb/datadir:/var/lib/mysql
    environment:
      MARIADB_USER: "bitwarden"
      MARIADB_PASSWORD: "RickRollThis"
      MARIADB_DATABASE: "bitwarden_vault"
      MARIADB_RANDOM_ROOT_PASSWORD: "true"
  smtp4dev:
    image: rnwood/smtp4dev:v3
    restart: 'unless-stopped'
    ports:
      - 4000:80
    volumes:
      - ./container_data/smtp4dev/data:/smtp4dev

After startup:

  • Goto http://localhost:7080/
  • Register as the admin email listed in config.
  • Login
  • Register your organization.
  • Add a collection to the organization.
  • Open the newly saved collection.
  • Change anything and press save.

The API logs will appear as @YetAnotherSimon reported and the JS logs will appear in the browser console as @cvondra reported.

@wardragon
Copy link

bitwarden/self-host#186

still there

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug bw-unified-deploy An Issue related to Bitwarden unified deployment
Projects
None yet
Development

No branches or pull requests

8 participants