diff --git a/http2irc.py b/http2irc.py index 31ae084..6ce47a6 100644 --- a/http2irc.py +++ b/http2irc.py @@ -655,8 +655,12 @@ class IRCClientProtocol(asyncio.Protocol): ircstates.numerics.ERR_BANNEDFROMCHAN, ircstates.numerics.ERR_BADCHANNELKEY, ): - self.logger.error(f'Failed to join channel: {message!r}, terminating connection') - self.transport.close() + self.logger.error(f'Failed to join channel {line.params[1]}: {message!r}') + errChannel = self.server.casefold(line.params[1]) + for channel in self.channels: + if self.server.casefold(channel) == errChannel: + self.channels.remove(channel) + break # PART errors elif line.command == '442':