{"id":"30b51e3b8e2e6e7f","repo":"rails/rails","slug":"failed-to-execute-close-on-websocket-the-code-m","errorCode":null,"errorMessage":"Failed to execute 'close' on WebSocket: The code must be either 1000, or between 3000 and 4999. #{code} is neither.","messagePattern":"Failed to execute 'close' on WebSocket: The code must be either 1000, or between 3000 and 4999\\. #(.+?) is neither\\.","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"actioncable/lib/action_cable/server/socket/client_socket.rb","lineNumber":96,"sourceCode":"          emit_error e.message\n        end\n\n        def transmit(message)\n          return false if @ready_state > OPEN\n          case message\n          when Numeric then @driver.text(message.to_s)\n          when String  then @driver.text(message)\n          when Array   then @driver.binary(message)\n          else false\n          end\n        end\n\n        def close(code = nil, reason = nil)\n          code   ||= 1000\n          reason ||= \"\"\n\n          unless code == 1000 || (code >= 3000 && code <= 4999)\n            raise ArgumentError, \"Failed to execute 'close' on WebSocket: \" \\\n                                \"The code must be either 1000, or between 3000 and 4999. \" \\\n                                \"#{code} is neither.\"\n          end\n\n          @ready_state = CLOSING unless @ready_state == CLOSED\n          @driver.close(reason, code)\n        end\n\n        def parse(data)\n          @driver.parse(data)\n        end\n\n        def client_gone\n          finalize_close\n        end\n\n        def alive?\n          @ready_state == OPEN","sourceCodeStart":78,"sourceCodeEnd":114,"githubUrl":"https://github.com/rails/rails/blob/817fc2a147c249180ee9b271c0e8d82d43457a3a/actioncable/lib/action_cable/server/socket/client_socket.rb#L78-L114","documentation":"Error \"Failed to execute 'close' on WebSocket: The code must be either 1000, or between 3000 and 4999. #{code} is neither.\" thrown in rails/rails.","triggerScenarios":"Thrown at actioncable/lib/action_cable/server/socket/client_socket.rb:96 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"817fc2a147c249180ee9b271c0e8d82d43457a3a","analyzedAt":"2026-08-04T20:52:19.892Z","schemaVersion":2}