diff --git a/changelog.d/858.bugfix b/changelog.d/858.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..60df2235a90c98f5b0ef1ffcb69d652c26eb0cf8
--- /dev/null
+++ b/changelog.d/858.bugfix
@@ -0,0 +1 @@
+Prevent crashes when handling messages sent to voice channels.
diff --git a/package.json b/package.json
index b26e995a481cda8b890c277647e54e5540fc029f..305900bbd897188b0234e56ffec194b8bd9eb809 100644
--- a/package.json
+++ b/package.json
@@ -41,7 +41,7 @@
   "homepage": "https://github.com/Half-Shot/matrix-appservice-discord#readme",
   "dependencies": {
     "@mx-puppet/matrix-discord-parser": "0.1.10",
-    "better-discord.js": "git+https://github.com/Sorunome/better-discord.js.git#b5a28499899fe2d9e6aa1aa3b3c5d693ae672117",
+    "better-discord.js": "github:matrix-org/better-discord.js#5024781db755259e88abe915630b7d5b3ba5f48f",
     "better-sqlite3": "^7.1.0",
     "command-line-args": "^5.1.1",
     "command-line-usage": "^6.1.0",
diff --git a/src/bot.ts b/src/bot.ts
index 8bc73d410365309800ecdb2a36f3866162871906..0ca0b768ab28c73af095abc216b5da394d786c9e 100644
--- a/src/bot.ts
+++ b/src/bot.ts
@@ -343,7 +343,7 @@ export class DiscordBot {
         client.on("userUpdate", async (_, user) => {
             try {
                 if (!(user instanceof Discord.User)) {
-                    log.warn(`Ignoring update for ${user.username}. User was partial.`);
+                    log.warn(`Ignoring update for ${(<any>user).username}. User was partial.`);
                     return;
                 }
                 await this.userSync.OnUpdateUser(user);
@@ -352,7 +352,7 @@ export class DiscordBot {
         client.on("guildMemberAdd", async (member) => {
             try {
                 if (!(member instanceof Discord.GuildMember)) {
-                    log.warn(`Ignoring update for ${member.guild.id} ${member.id}. User was partial.`);
+                    log.warn(`Ignoring update for ${(<any>member).guild?.id} ${(<any>member).id}. User was partial.`);
                     return;
                 }
                 await this.userSync.OnAddGuildMember(member);
@@ -370,7 +370,7 @@ export class DiscordBot {
         client.on("guildMemberUpdate", async (_, member) => {
             try {
                 if (!(member instanceof Discord.GuildMember)) {
-                    log.warn(`Ignoring update for ${member.guild.id} ${member.id}. User was partial.`);
+                    log.warn(`Ignoring update for ${(<any>member).guild.id} ${(<any>member).id}. User was partial.`);
                     return;
                 }
                 await this.userSync.OnUpdateGuildMember(member);
diff --git a/yarn.lock b/yarn.lock
index 2737abeb006b4c18551934e0a88f7bfc0731527e..25a1f0a799d8aacd9ece1a6297549661d592de50 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -885,14 +885,14 @@ bcrypt-pbkdf@^1.0.0:
   dependencies:
     tweetnacl "^0.14.3"
 
-"better-discord.js@git+https://github.com/Sorunome/better-discord.js.git#b5a28499899fe2d9e6aa1aa3b3c5d693ae672117":
-  version "12.3.1"
-  resolved "git+https://github.com/Sorunome/better-discord.js.git#b5a28499899fe2d9e6aa1aa3b3c5d693ae672117"
+"better-discord.js@github:matrix-org/better-discord.js#5024781db755259e88abe915630b7d5b3ba5f48f":
+  version "12.5.1"
+  resolved "https://codeload.github.com/matrix-org/better-discord.js/tar.gz/5024781db755259e88abe915630b7d5b3ba5f48f"
   dependencies:
     "@discordjs/collection" "^0.1.6"
     "@discordjs/form-data" "^3.0.1"
     abort-controller "^3.0.0"
-    node-fetch "^2.6.0"
+    node-fetch "^2.6.1"
     prism-media "^1.2.2"
     setimmediate "^1.0.5"
     tweetnacl "^1.0.3"
@@ -3018,7 +3018,7 @@ node-emoji@^1.10.0:
   dependencies:
     lodash "^4.17.21"
 
-node-fetch@^2.6.0:
+node-fetch@^2.6.1:
   version "2.6.7"
   resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
   integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==