+1 @nah_ny - I had the same problem, and it seems that the new version of google spreadsheets dont allow range sorting if that range is in a google forms response sheet:
// not working
function sort_form_responses() {
// get spreadsheet
var sa = SpreadsheetApp.getActiveSpreadsheet();
// get forms response sheet by name
var sn = sa.getSheetByName("Form Responses 2");
// get sheet range, assumes headers in row 1
var r = sn.getRange(2, 1, sn.getMaxRows()-1, sn.getMaxColumns());
// sort range array
r.sort([{ column: 2, ascending: false }]);
...
A solution that worked in my case was instead to use the sort method on the entire response sheet object:
// working
function sort_form_responses() {
// get spreadsheet
var sa = SpreadsheetApp.getActiveSpreadsheet();
// get forms response sheet by name
var sn = sa.getSheetByName("Form Responses 2");
// sort entire sheet required for form sheets
sn.sort(2,false)
...