diff --git a/doc/UPGRADE-staging/menuselect-could-fail.txt b/doc/UPGRADE-staging/menuselect-could-fail.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e3e20ed833aec3ebc27e325aa3ccb81921b2d2bc
--- /dev/null
+++ b/doc/UPGRADE-staging/menuselect-could-fail.txt
@@ -0,0 +1,5 @@
+Subject: menuselect
+
+menuselect --enable, --disable, --enable-category and --disable-category will
+now fail with a non-zero exit code instead of silently failing if an invalid
+option or category is specified.
diff --git a/menuselect/menuselect.c b/menuselect/menuselect.c
index 2ef075fdbe2fb24f571a48adaee510ba17cc75b0..615e29f9008b9d80d52c12da9656bb4c46b1b008 100644
--- a/menuselect/menuselect.c
+++ b/menuselect/menuselect.c
@@ -2120,6 +2120,7 @@ int main(int argc, char *argv[])
 		/* Reset options processing */
 		option_index = 0;
 		optind = 1;
+		res = 0;
 
 		while ((c = getopt_long(argc, argv, "", long_options, &option_index)) != -1) {
 			print_debug("Got option %c\n", c);
@@ -2130,6 +2131,7 @@ int main(int argc, char *argv[])
 						set_member_enabled(mem);
 					} else {
 						fprintf(stderr, "'%s' not found\n", optarg);
+						res = 1;
 					}
 				}
 				break;
@@ -2139,6 +2141,7 @@ int main(int argc, char *argv[])
 						set_all(cat, 1);
 					} else {
 						fprintf(stderr, "'%s' not found\n", optarg);
+						res = 1;
 					}
 				}
 				break;
@@ -2153,6 +2156,7 @@ int main(int argc, char *argv[])
 						clear_member_enabled(mem);
 					} else {
 						fprintf(stderr, "'%s' not found\n", optarg);
+						res = 1;
 					}
 				}
 				break;
@@ -2162,6 +2166,7 @@ int main(int argc, char *argv[])
 						set_all(cat, 0);
 					} else {
 						fprintf(stderr, "'%s' not found\n", optarg);
+						res = 1;
 					}
 				}
 				break;
@@ -2176,7 +2181,6 @@ int main(int argc, char *argv[])
 				break;
 			}
 		}
-		res = 0;
 	}
 
 	if (!res) {
diff --git a/tests/CI/buildAsterisk.sh b/tests/CI/buildAsterisk.sh
index 2deb549363a9f7b0a6f1f3717d6d6bbf1502690a..d8bad70fd22a7de8cd942ed127853819ff21744d 100755
--- a/tests/CI/buildAsterisk.sh
+++ b/tests/CI/buildAsterisk.sh
@@ -158,7 +158,7 @@ if [ $NO_MENUSELECT -eq 0 ] ; then
 
 	runner menuselect/menuselect `gen_mods disable $mod_disables` menuselect.makeopts
 
-	mod_enables="app_voicemail app_directory FILE_STORAGE"
+	mod_enables="app_voicemail app_directory"
 	mod_enables+=" res_mwi_external res_ari_mailboxes res_mwi_external_ami res_stasis_mailbox"
 	mod_enables+=" CORE-SOUNDS-EN-GSM MOH-OPSOUND-GSM EXTRA-SOUNDS-EN-GSM"
 	runner menuselect/menuselect `gen_mods enable $mod_enables` menuselect.makeopts