Google app scripts variability, sometimes my code runs and sometimes it does not? automation

I work for a big organisation and we have some large google sheets that multiple users use (however maybe at one time it would be maximum 7-10). I am working on automating some processes for this sheet. For example one of the app scipts i am working on, I would like users to once they have inputted data into a row to complete a QA check and once completed they would input ‘r’ into one of the cells and this will then print out the users email and date they reviewed. The issue is, this does work. however sometimes it wont work for some cells and some sheets. some days it wont work at all and some days it does. I checked the google app script quota limits and from what it seems we are not exceeding the limit here. Therefore I am completely baffled as to why its not working, perhaps its my code? maybe theres a way to optimise this code also? its annoying to have to keep updating the column index numbers if changes happen to the sheet. the title of the column is the same on all the sheets (QA) so i thought about using that as a reference instead of referncing each sheet and the index of the column affected?

function team_QA(e) {
  // Ensure the event object is defined, if false ignore
  if (!e) return;

  var sheet = e.source.getActiveSheet(); 
  var sheetName = sheet.getName();

  // Define the columns to watch for each sheet
  var sheetConfigurations = {
    'Paid': 123, // Column DS
    'Dis': 137,   // Column EH
    'Review': 115, // Column DK
    'Third': 115, // Column DK
    'Lead: 119 // Column DO
  };

  // Check if the edited sheet is one of the specified sheets
  if (!sheetConfigurations.hasOwnProperty(sheetName)) {
    return;
  }

  // Get the column to watch for the current sheet
  var columnToWatch = sheetConfigurations[sheetName];

  // Get the range of the cell that was edited
  var range = e.range;
  var column = range.getColumn();

  // Check if the edited cell is in the column to watch and contains "R"
  if (column == columnToWatch && range.getValue() == "r") {
    // Get the user's email and current date
    var userEmail = Session.getActiveUser().getEmail();
    var currentDate = new Date();

    // Format the date as desired
    var formattedDate = Utilities.formatDate(currentDate, Session.getScriptTimeZone(), "MM-dd-yy");

    // Combine the email and date
    var reviewInfo = userEmail + " reviewed on " + formattedDate;
    
    // Set the review information in the edited cell
    range.setValue(reviewInfo);
  }
}