                     message: msg
                     timestamp: time
                     id: id
+
+              else if record.action == 'invalid-request'
+                setImmediate => @emit 'invalid-request', record
+                logger.error "Server received a request which did not contain a sequence number:", record
+
               else
+                message = 'Valid, but un-handled response type.'
                 setImmediate => @emit 'error', new errors.PubSubError("#{message}: #{rec}")
-
-                message = 'Valid, but un-handled response type.'
                 logger.error "#{message}"
 
           # WebSocket connection failure

                if not promise?
                  message = 'Received a record containing an unknown sequence number.'
                  setImmediate => @emit 'error', new errors.PubSubError("#{message}: #{rec}")

                  logger.error "#{message}: #{rec}"
                else
                  {resolve, reject} = promise

            logger.verbose "Received a record:", rec
            @recordCount += 1

            setImmediate => @emit 'raw-record', rec

            validation = dialect.parseAndAutoValidate rec

            if not validation.isValid
