diff --git a/packages/core/src/network/session-connection.ts b/packages/core/src/network/session-connection.ts index 9508640b..38386072 100644 --- a/packages/core/src/network/session-connection.ts +++ b/packages/core/src/network/session-connection.ts @@ -1771,7 +1771,6 @@ export class SessionConnection extends PersistentConnection { } const result = writer.result() - // probably the easiest way lol this.log.debug( 'sending %d messages: size = %db, acks = %d (msg_id = %s), ping = %s (msg_id = %s), state_req = %s (msg_id = %s), resend = %s (msg_id = %s), cancels = %s (msg_id = %s), rpc = %s, container = %s, root msg_id = %l', @@ -1800,7 +1799,9 @@ export class SessionConnection extends PersistentConnection { if (ackMsgIds) { this._session.queuedAcks.splice(0, 0, ...ackMsgIds) } - this._onMessageFailed(rootMsgId!, 'unknown error') + if (rootMsgId) { + this._onMessageFailed(rootMsgId, 'unknown error') + } }) } } diff --git a/packages/core/src/network/transports/tcp.ts b/packages/core/src/network/transports/tcp.ts index 3954f1f3..7d7ed217 100644 --- a/packages/core/src/network/transports/tcp.ts +++ b/packages/core/src/network/transports/tcp.ts @@ -116,12 +116,12 @@ export abstract class BaseTcpTransport extends EventEmitter implements ITelegram } async send(bytes: Uint8Array): Promise { + const framed = await this._packetCodec.encode(bytes) + if (this._state !== TransportState.Ready) { throw new MtcuteError('Transport is not READY') } - const framed = await this._packetCodec.encode(bytes) - return new Promise((resolve, reject) => { this._socket!.write(framed, (error) => { if (error) {