{"record":{"id":"e0e5852f1d50cc97","repo":"bitwarden/server","slug":"resource-not-found-e0e585","errorCode":null,"errorMessage":"Resource not found.","messagePattern":"Resource not found\\.","errorType":"http","errorClass":"NotFoundException","httpStatus":404,"severity":"error","filePath":"src/Api/Vault/Controllers/CiphersController.cs","lineNumber":1232,"sourceCode":"        var userId = _userService.GetProperUserId(User).Value;\n        await _cipherService.MoveManyAsync(model.Ids.Select(i => new Guid(i)),\n            string.IsNullOrWhiteSpace(model.FolderId) ? (Guid?)null : new Guid(model.FolderId), userId);\n    }\n\n    [HttpPost(\"move\")]\n    [Obsolete(\"This endpoint is deprecated. Use PUT method instead.\")]\n    public async Task PostMoveMany([FromBody] CipherBulkMoveRequestModel model)\n    {\n        await MoveMany(model);\n    }\n\n    [HttpPut(\"share\")]\n    public async Task<ListResponseModel<CipherMiniResponseModel>> PutShareMany([FromBody] CipherBulkShareRequestModel model)\n    {\n        var organizationId = new Guid(model.Ciphers.First().OrganizationId);\n        if (!await _currentContext.OrganizationUser(organizationId))\n        {\n            throw new NotFoundException();\n        }\n\n        var userId = _userService.GetProperUserId(User).Value;\n\n        var ciphers = await _cipherRepository.GetManyByUserIdAsync(userId, withOrganizations: false);\n        var ciphersDict = ciphers.ToDictionary(c => c.Id);\n\n        // Validate the model was encrypted for the posting user\n        foreach (var cipher in model.Ciphers)\n        {\n            if (cipher.EncryptedFor.HasValue && cipher.EncryptedFor.Value != userId)\n            {\n                _logger.LogError(\"Cipher was not encrypted for the current user. CipherId: {CipherId}, CurrentUser: {CurrentUserId}, EncryptedFor: {EncryptedFor}\", cipher.Id, userId, cipher.EncryptedFor);\n                throw new BadRequestException(\"Cipher was not encrypted for the current user. Please try again.\");\n            }\n        }\n\n        var shareCiphers = new List<(CipherDetails, DateTime?)>();","sourceCodeStart":1214,"sourceCodeEnd":1250,"githubUrl":"https://github.com/bitwarden/server/blob/e93b962371d80964556f5590c6615f5160a437a1/src/Api/Vault/Controllers/CiphersController.cs#L1214-L1250","documentation":"Error \"Resource not found.\" thrown in bitwarden/server.","triggerScenarios":"Thrown in CiphersController when the cipher referenced by the request cannot be found or is not accessible to the current user.","commonSituations":"See trigger scenarios.","solutions":["Re-sync the vault to clear references to deleted items, then retry.","Verify the cipher or folder ID in the request exists via a list/sync call before operating on it."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e93b962371d80964556f5590c6615f5160a437a1","analyzedAt":"2026-08-13T14:22:19.382Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}