diff --git a/src/core/lib/surface/call.c b/src/core/lib/surface/call.c
index 2462adc26a0a6237e9606ae50c8ae2e816e05743..f1767cb05cfc06bedf517b78155eac48bad8459a 100644
--- a/src/core/lib/surface/call.c
+++ b/src/core/lib/surface/call.c
@@ -434,7 +434,7 @@ static void set_compression_algorithm(grpc_call *call,
     gpr_asprintf(&error_msg, "Compression algorithm '%s' is disabled.",
                  algo_name);
     gpr_log(GPR_ERROR, error_msg);
-    close_with_status(&exec_ctx, call, GRPC_STATUS_INTERNAL, error_msg);
+    close_with_status(&exec_ctx, call, GRPC_STATUS_UNIMPLEMENTED, error_msg);
   } else {
     call->compression_algorithm = algo;
   }
diff --git a/test/core/end2end/tests/compressed_payload.c b/test/core/end2end/tests/compressed_payload.c
index b713d399c0ce205aa53261344b94ad430db78628..1c58d4d0b1c421bcbe0f0c3b3fb9d90c1fb186ff 100644
--- a/test/core/end2end/tests/compressed_payload.c
+++ b/test/core/end2end/tests/compressed_payload.c
@@ -496,11 +496,11 @@ static void test_invoke_request_with_compressed_payload_md_override(
       GRPC_COMPRESS_DEFLATE, GRPC_COMPRESS_NONE, &none_compression_override);
 }
 
-static void test_invoke_request_with_invalid_algorithm(
+static void test_invoke_request_with_disabled_algorithm(
     grpc_end2end_test_config config) {
   request_for_disabled_algorithm(
-      config, "test_invoke_request_with_invalid_algorithm", 0,
-      GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, GRPC_STATUS_INTERNAL, NULL);
+      config, "test_invoke_request_with_disabled_algorithm", 0,
+      GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, GRPC_STATUS_UNIMPLEMENTED, NULL);
 }
 
 void compressed_payload(grpc_end2end_test_config config) {
@@ -508,7 +508,7 @@ void compressed_payload(grpc_end2end_test_config config) {
   test_invoke_request_with_uncompressed_payload(config);
   test_invoke_request_with_compressed_payload(config);
   test_invoke_request_with_compressed_payload_md_override(config);
-  test_invoke_request_with_invalid_algorithm(config);
+  test_invoke_request_with_disabled_algorithm(config);
 }
 
 void compressed_payload_pre_init(void) {}