     init(buffer: ReadBuffer) {
         self.buffer = buffer
         self.state = .lengthDelimited(length: buffer.count)
-        self.unknownFieldsStack.append(nil)
+        self.messageStackDepth = 1
     }
 
     // MARK: - Public Methods - Iterating Tags

    }

    private func addUnknownField(_ block: (ProtoWriter) throws -> Void) rethrows {
        let unknownFieldsWriter = ProtoWriter(data: unknownFieldsStack.last! ?? WriteBuffer())
        try block(unknownFieldsWriter)
        unknownFieldsStack[unknownFieldsStack.count - 1] = unknownFieldsWriter.buffer
    }

}

            fatalError("Unexpected call to decodeMessage()")
        }

        if messageStackDepth > ProtoReader.recursionLimit {
            throw ProtoDecoder.Error.recursionLimitExceeded
        }

