diff --git a/src/commands/server/buttons.ts b/src/commands/server/buttons.ts
index 4a299b2..bc90983 100644
--- a/src/commands/server/buttons.ts
+++ b/src/commands/server/buttons.ts
@@ -224,7 +224,7 @@
                 }
             }
         } else if(i.isStringSelectMenu()) {
-            await i.deferUpdate();
+            try {await i.deferUpdate();} catch (err) {}
             switch(i.customId) {
                 case "color": {
                     data.color = colors[i.values[0]!]!;
diff --git a/src/commands/tags/edit.ts b/src/commands/tags/edit.ts
index a6e23ba..a80869e 100644
--- a/src/commands/tags/edit.ts
+++ b/src/commands/tags/edit.ts
@@ -20,8 +20,8 @@
 const callback = async (interaction: CommandInteraction): Promise<unknown> => {
     if (!interaction.guild) return;
     const name = interaction.options.get("name")?.value as string;
-    const value = interaction.options.get("value")?.value as string;
-    const newname = interaction.options.get("newname")?.value as string;
+    const value = interaction.options.get("value")?.value as string ?? "";
+    const newname = interaction.options.get("newname")?.value as string ?? "";
     if (!newname && !value)
         return await interaction.reply({
             embeds: [
