diff --git a/backend/src/pluginUtils.ts b/backend/src/pluginUtils.ts
index 9b48f809..fe6c973f 100644
--- a/backend/src/pluginUtils.ts
+++ b/backend/src/pluginUtils.ts
@@ -2,7 +2,7 @@
  * @file Utility functions that are plugin-instance-specific (i.e. use PluginData)
  */
 
-import { Member } from "eris";
+import { GuildTextableChannel, Member, Message, TextableChannel } from "eris";
 import { CommandContext, configUtils, ConfigValidationError, GuildPluginData, helpers, PluginOptions } from "knub";
 import { decodeAndValidateStrict, StrictValidationError, validate } from "./validatorUtils";
 import { deepKeyIntersect, errorMessage, successMessage, tDeepPartial, tNullable } from "./utils";
@@ -137,17 +137,30 @@ export function getPluginConfigPreprocessor(
   };
 }
 
-export function sendSuccessMessage(pluginData: AnyPluginData<any>, channel, body) {
+export function sendSuccessMessage(
+  pluginData: AnyPluginData<any>,
+  channel: TextableChannel,
+  body: string,
+): Promise<Message | undefined> {
   const emoji = pluginData.fullConfig.success_emoji || undefined;
   return channel.createMessage(successMessage(body, emoji)).catch(err => {
-    logger.warn(`Failed to send success message to ${channel.id} (${channel.guild?.id}): ${err.code} ${err.message}`);
+    logger.warn(
+      `Failed to send success message to ${channel.id} (${(channel as GuildTextableChannel).guild?.id}): ${err.code} ${
+        err.message
+      }`,
+    );
+    return undefined;
   });
 }
 
 export function sendErrorMessage(pluginData: AnyPluginData<any>, channel, body) {
   const emoji = pluginData.fullConfig.error_emoji || undefined;
   return channel.createMessage(errorMessage(body, emoji)).catch(err => {
-    logger.warn(`Failed to send error message to ${channel.id} (${channel.guild?.id}): ${err.code} ${err.message}`);
+    logger.warn(
+      `Failed to send error message to ${channel.id} (${(channel as GuildTextableChannel).guild?.id}): ${err.code} ${
+        err.message
+      }`,
+    );
   });
 }
 
diff --git a/backend/src/plugins/Utility/UtilityPlugin.ts b/backend/src/plugins/Utility/UtilityPlugin.ts
index bfc08657..41a81d0e 100644
--- a/backend/src/plugins/Utility/UtilityPlugin.ts
+++ b/backend/src/plugins/Utility/UtilityPlugin.ts
@@ -148,7 +148,7 @@ export const UtilityPlugin = zeppelinGuildPlugin<UtilityPluginType>()("utility",
     state.lastReload = Date.now();
 
     if (activeReloads.has(guild.id)) {
-      sendSuccessMessage(pluginData, activeReloads.get(guild.id), "Reloaded!");
+      sendSuccessMessage(pluginData, activeReloads.get(guild.id)!, "Reloaded!");
       activeReloads.delete(guild.id);
     }
   },
diff --git a/backend/src/plugins/Utility/commands/CleanCmd.ts b/backend/src/plugins/Utility/commands/CleanCmd.ts
index a54964f1..4bb51b42 100644
--- a/backend/src/plugins/Utility/commands/CleanCmd.ts
+++ b/backend/src/plugins/Utility/commands/CleanCmd.ts
@@ -136,7 +136,7 @@ export const CleanCmd = utilityCmd({
       }
     }
 
-    let responseMsg: Message;
+    let responseMsg: Message | undefined;
     if (messagesToClean.length > 0) {
       const cleanResult = await cleanMessages(pluginData, targetChannel, messagesToClean, msg.author);
 
@@ -157,7 +157,7 @@ export const CleanCmd = utilityCmd({
       // (so as not to spam the cleaned channel with the command itself)
       setTimeout(() => {
         msg.delete().catch(noop);
-        responseMsg.delete().catch(noop);
+        responseMsg?.delete().catch(noop);
       }, CLEAN_COMMAND_DELETE_DELAY);
     }
   },