Description
Bug description
When I refresh the client page, sometimes the server throws an error in the schema encode part. It seems to happen when the client reconnects to get the latest state, causing an exception. What could be the reason for this?
I log the error
0|colyseus-app | 2024-02-15T23:38:28: assertInstanceType value undefined
0|colyseus-app | 2024-02-15T23:38:28: assertInstanceType type <ref *1> [class Card extends Schema] {
0|colyseus-app | 2024-02-15T23:38:28: _context: Context {
0|colyseus-app | 2024-02-15T23:38:28: types: {
0|colyseus-app | 2024-02-15T23:38:28: '0': [Circular *1],
0|colyseus-app | 2024-02-15T23:38:28: '1': [Function],
0|colyseus-app | 2024-02-15T23:38:28: '2': [Function],
0|colyseus-app | 2024-02-15T23:38:28: '3': [Function],
0|colyseus-app | 2024-02-15T23:38:28: '4': [Function]
0|colyseus-app | 2024-02-15T23:38:28: },
0|colyseus-app | 2024-02-15T23:38:28: schemas: Map(5) {
0|colyseus-app | 2024-02-15T23:38:28: [Circular *1] => 0,
0|colyseus-app | 2024-02-15T23:38:28: [Function] => 1,
0|colyseus-app | 2024-02-15T23:38:28: [Function] => 2,
0|colyseus-app | 2024-02-15T23:38:28: [Function] => 3,
0|colyseus-app | 2024-02-15T23:38:28: [Function] => 4
0|colyseus-app | 2024-02-15T23:38:28: },
0|colyseus-app | 2024-02-15T23:38:28: useFilters: false
0|colyseus-app | 2024-02-15T23:38:28: },
0|colyseus-app | 2024-02-15T23:38:28: _definition: SchemaDefinition {
0|colyseus-app | 2024-02-15T23:38:28: indexes: { id: 0, field: 1, publicSuit: 2, publicRank: 3 },
0|colyseus-app | 2024-02-15T23:38:28: fieldsByIndex: { '0': 'id', '1': 'field', '2': 'publicSuit', '3': 'publicRank' },
0|colyseus-app | 2024-02-15T23:38:28: deprecated: {},
0|colyseus-app | 2024-02-15T23:38:28: descriptors: {
0|colyseus-app | 2024-02-15T23:38:28: _id: [Object],
0|colyseus-app | 2024-02-15T23:38:28: id: [Object],
0|colyseus-app | 2024-02-15T23:38:28: _field: [Object],
0|colyseus-app | 2024-02-15T23:38:28: field: [Object],
0|colyseus-app | 2024-02-15T23:38:28: _publicSuit: [Object],
0|colyseus-app | 2024-02-15T23:38:28: publicSuit: [Object],
0|colyseus-app | 2024-02-15T23:38:28: _publicRank: [Object],
0|colyseus-app | 2024-02-15T23:38:28: publicRank: [Object]
0|colyseus-app | 2024-02-15T23:38:28: },
0|colyseus-app | 2024-02-15T23:38:28: schema: {
0|colyseus-app | 2024-02-15T23:38:28: id: 'string',
0|colyseus-app | 2024-02-15T23:38:28: field: 'string',
0|colyseus-app | 2024-02-15T23:38:28: publicSuit: 'string',
0|colyseus-app | 2024-02-15T23:38:28: publicRank: 'string'
0|colyseus-app | 2024-02-15T23:38:28: }
0|colyseus-app | 2024-02-15T23:38:28: },
0|colyseus-app | 2024-02-15T23:38:28: _typeid: 0
0|colyseus-app | 2024-02-15T23:38:28: }
0|colyseus-app | 2024-02-15T23:38:28: assertInstanceType klass <ref *1> ArraySchema {
0|colyseus-app | 2024-02-15T23:38:28: '$changes': ChangeTree {
0|colyseus-app | 2024-02-15T23:38:28: changed: false,
0|colyseus-app | 2024-02-15T23:38:28: changes: Map(0) {},
0|colyseus-app | 2024-02-15T23:38:28: allChanges: Set(5) { 3, 2, 1, 4, 0 },
0|colyseus-app | 2024-02-15T23:38:28: caches: {},
0|colyseus-app | 2024-02-15T23:38:28: currentCustomOperation: 0,
0|colyseus-app | 2024-02-15T23:38:28: ref: [Circular *1],
0|colyseus-app | 2024-02-15T23:38:28: indexes: {},
0|colyseus-app | 2024-02-15T23:38:28: parent: TexasRoomState {
0|colyseus-app | 2024-02-15T23:38:28: name: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: players: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: currentGameState: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: currentGameTurnStage: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: nextGameTurnStage: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: table: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: maxPlayers: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: minPlayers: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: symbol: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: currentSeat: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: lastRiseSeat: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: pots: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: smallBlind: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: bigBlind: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: minBuyIn: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: maxBuyIn: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: currentBet: [Getter/Setter],
0|colyseus-app | 2024-02-15T23:38:28: betUnit: [Getter/Setter]
0|colyseus-app | 2024-02-15T23:38:28: },
0|colyseus-app | 2024-02-15T23:38:28: parentIndex: 5,
0|colyseus-app | 2024-02-15T23:38:28: root: ReferenceTracker {
0|colyseus-app | 2024-02-15T23:38:28: refs: Map(0) {},
0|colyseus-app | 2024-02-15T23:38:28: refCounts: {},
0|colyseus-app | 2024-02-15T23:38:28: deletedRefs: Set(0) {},
0|colyseus-app | 2024-02-15T23:38:28: nextUniqueId: 24
0|colyseus-app | 2024-02-15T23:38:28: },
0|colyseus-app | 2024-02-15T23:38:28: refId: 2
0|colyseus-app | 2024-02-15T23:38:28: },
0|colyseus-app | 2024-02-15T23:38:28: '$items': Map(0) {},
0|colyseus-app | 2024-02-15T23:38:28: '$indexes': Map(0) {},
0|colyseus-app | 2024-02-15T23:38:28: '$refId': 5,
0|colyseus-app | 2024-02-15T23:38:28: '$proxy': true
0|colyseus-app | 2024-02-15T23:38:28: }
0|colyseus-app | 2024-02-15T23:38:28: assertInstanceType field 3
0|colyseus-app | 2024-02-15T23:38:28: TypeError: Cannot read properties of undefined (reading 'constructor')
0|colyseus-app | 2024-02-15T23:38:28: at assertInstanceType (/Users/huhui/code/lykke-texas/colyseus-server/node_modules/@colyseus/schema/build/cjs/index.js:2421:99)
0|colyseus-app | 2024-02-15T23:38:28: at Schema.encode (/Users/huhui/code/lykke-texas/colyseus-server/node_modules/@colyseus/schema/build/cjs/index.js:2824:21)
0|colyseus-app | 2024-02-15T23:38:28: at TexasRoomState.encode (/Users/huhui/code/lykke-texas/colyseus-server/build/rooms/schema/TexasRoomState.js:28:22)
Optional: Minimal reproduction
No response