{"record":{"id":"79fa6855e544e50d","repo":"nopSolutions/nopCommerce","slug":"no-return-request-reason-found-with-the-specified","errorCode":null,"errorMessage":"No return request reason found with the specified id","messagePattern":"No return request reason found with the specified id","errorType":"exception","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"src/Presentation/Nop.Web/Areas/Admin/Controllers/ReturnRequestController.cs","lineNumber":338,"sourceCode":"                return RedirectToAction(\"ReturnRequestReasonList\");\n\n            return RedirectToAction(\"ReturnRequestReasonEdit\", new { id = returnRequestReason.Id });\n        }\n\n        //prepare model\n        model = await _returnRequestModelFactory.PrepareReturnRequestReasonModelAsync(model, returnRequestReason, true);\n\n        //if we got this far, something failed, redisplay form\n        return View(model);\n    }\n\n    [HttpPost]\n    [CheckPermission(StandardPermission.Configuration.MANAGE_SETTINGS)]\n    public virtual async Task<IActionResult> ReturnRequestReasonDelete(int id)\n    {\n        //try to get a return request reason with the specified id\n        var returnRequestReason = await _returnRequestService.GetReturnRequestReasonByIdAsync(id)\n                                  ?? throw new ArgumentException(\"No return request reason found with the specified id\", nameof(id));\n\n        await _returnRequestService.DeleteReturnRequestReasonAsync(returnRequestReason);\n\n        _notificationService.SuccessNotification(await _localizationService.GetResourceAsync(\"Admin.Configuration.Settings.Order.ReturnRequestReasons.Deleted\"));\n\n        return RedirectToAction(\"ReturnRequestReasonList\");\n    }\n\n    #endregion\n\n    #region Return request actions\n\n    [CheckPermission(StandardPermission.Configuration.MANAGE_SETTINGS)]\n    public virtual IActionResult ReturnRequestActionList()\n    {\n        //select an appropriate card\n        SaveSelectedCardName(\"ordersettings-return-request\");\n","sourceCodeStart":320,"sourceCodeEnd":356,"githubUrl":"https://github.com/nopSolutions/nopCommerce/blob/64bdf2ff08c8b39e65717bcf974fb43dc2ef68f2/src/Presentation/Nop.Web/Areas/Admin/Controllers/ReturnRequestController.cs#L320-L356","documentation":"Thrown by ReturnRequestReasonDelete (POST, MANAGE_SETTINGS) when GetReturnRequestReasonByIdAsync(id) returns null. The action then deletes the reason and redirects; without a loaded entity the delete cannot proceed. The exception includes nameof(id) as the parameter name.","triggerScenarios":"Posting a delete for an already-removed return-request reason; double-click; tampered id; reason removed by another admin or by a settings reset between requests.","commonSituations":"Concurrent settings edits; restored DBs; fixtures; another admin reorganized return-request reasons mid-session.","solutions":["Refresh the return-request-reason list and delete a current row.","Disable the delete button after first click to prevent double-submit.","Make the delete idempotent: treat a missing reason as success.","Validate id > 0 before posting."],"exampleFix":"// before\nvar returnRequestReason = await _returnRequestService.GetReturnRequestReasonByIdAsync(id)\n                          ?? throw new ArgumentException(\"No return request reason found with the specified id\", nameof(id));\n\n// after\nvar returnRequestReason = await _returnRequestService.GetReturnRequestReasonByIdAsync(id);\nif (returnRequestReason == null)\n    return RedirectToAction(\"ReturnRequestReasonList\");","handlingStrategy":"validation","validationCode":"if (id <= 0) return BadRequest();\nvar reason = await _returnRequestService.GetReturnRequestReasonByIdAsync(id);\nif (reason == null) return RedirectToAction(\"ReturnRequestReasonList\");","typeGuard":"// N/A","tryCatchPattern":"catch (ArgumentException ex) when (ex.ParamName == nameof(id))\n{ return RedirectToAction(\"ReturnRequestReasonList\"); }","preventionTips":["Make delete idempotent (missing = success).","Disable the delete control after first click.","Refresh the reasons list before deleting."],"tags":["nopcommerce","admin-controller","not-found","return-request","settings","delete"],"backgroundTag":null,"analyzedSha":"64bdf2ff08c8b39e65717bcf974fb43dc2ef68f2","analyzedAt":"2026-08-13T21:19:38.062Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}