diff --git a/src/libs/actions/PersistedRequests.js b/src/libs/actions/PersistedRequests.js index d893ee255287..c99ed2ace7fe 100644 --- a/src/libs/actions/PersistedRequests.js +++ b/src/libs/actions/PersistedRequests.js @@ -25,7 +25,15 @@ function save(requestsToPersist) { * @param {Object} requestToRemove */ function remove(requestToRemove) { - persistedRequests = _.reject(persistedRequests, (persistedRequest) => _.isEqual(persistedRequest, requestToRemove)); + /** + * We only remove the first matching request because the order of requests matters. + * If we were to remove all matching requests, we can end up with a final state that is different than what the user intended. + */ + const index = _.findIndex(persistedRequests, (persistedRequest) => _.isEqual(persistedRequest, requestToRemove)); + if (index !== -1) { + persistedRequests.splice(index, 1); + } + Onyx.set(ONYXKEYS.PERSISTED_REQUESTS, persistedRequests); }