diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.c b/src/core/ext/transport/chttp2/transport/chttp2_transport.c
index f48e615e1ec11c87787a2ddd5c35ab523b6785b6..5264b9e1f85aba046be7e231596d3497f5dfdd41 100644
--- a/src/core/ext/transport/chttp2/transport/chttp2_transport.c
+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.c
@@ -811,7 +811,8 @@ void grpc_chttp2_add_incoming_goaway(
       exec_ctx, transport_global, GRPC_CHANNEL_FATAL_FAILURE,
       grpc_error_set_str(
           grpc_error_set_int(GRPC_ERROR_CREATE("GOAWAY received"),
-                             GRPC_ERROR_INT_HTTP2_ERROR, goaway_error),
+                             GRPC_ERROR_INT_HTTP2_ERROR,
+                             (intptr_t)goaway_error),
           GRPC_ERROR_STR_RAW_BYTES, msg),
       "got_goaway");
   gpr_free(msg);
diff --git a/src/core/ext/transport/chttp2/transport/frame_data.c b/src/core/ext/transport/chttp2/transport/frame_data.c
index 7a1ec4436bae176152121461eeaf3364b8bcc9bd..9046fbc453f77829418c29be3dc0ac991f2d5891 100644
--- a/src/core/ext/transport/chttp2/transport/frame_data.c
+++ b/src/core/ext/transport/chttp2/transport/frame_data.c
@@ -69,8 +69,8 @@ grpc_error *grpc_chttp2_data_parser_begin_frame(grpc_chttp2_data_parser *parser,
   if (flags & ~GRPC_CHTTP2_DATA_FLAG_END_STREAM) {
     char *msg;
     gpr_asprintf(&msg, "unsupported data flags: 0x%02x", flags);
-    grpc_error *err = grpc_error_set_int(GRPC_ERROR_CREATE(msg),
-                                         GRPC_ERROR_INT_STREAM_ID, stream_id);
+    grpc_error *err = grpc_error_set_int(
+        GRPC_ERROR_CREATE(msg), GRPC_ERROR_INT_STREAM_ID, (intptr_t)stream_id);
     gpr_free(msg);
     return err;
   }
@@ -184,7 +184,7 @@ grpc_error *grpc_chttp2_data_parser_parse(
           gpr_asprintf(&msg, "Bad GRPC frame type 0x%02x", p->frame_type);
           p->error = GRPC_ERROR_CREATE(msg);
           p->error = grpc_error_set_int(p->error, GRPC_ERROR_INT_STREAM_ID,
-                                        stream_parsing->id);
+                                        (intptr_t)stream_parsing->id);
           gpr_free(msg);
           msg = gpr_dump_slice(slice, GPR_DUMP_HEX | GPR_DUMP_ASCII);
           p->error =
diff --git a/src/core/ext/transport/chttp2/transport/frame_rst_stream.c b/src/core/ext/transport/chttp2/transport/frame_rst_stream.c
index 08804fa5539da2f8dab7d57aeb766bad53fb81fe..a7aefb99158a295b042c709f7309865039957ad6 100644
--- a/src/core/ext/transport/chttp2/transport/frame_rst_stream.c
+++ b/src/core/ext/transport/chttp2/transport/frame_rst_stream.c
@@ -104,10 +104,10 @@ grpc_error *grpc_chttp2_rst_stream_parser_parse(
     stream_parsing->received_close = 1;
     stream_parsing->forced_close_error = grpc_error_set_int(
         GRPC_ERROR_CREATE("RST_STREAM"), GRPC_ERROR_INT_HTTP2_ERROR,
-        (((uint32_t)p->reason_bytes[0]) << 24) |
-            (((uint32_t)p->reason_bytes[1]) << 16) |
-            (((uint32_t)p->reason_bytes[2]) << 8) |
-            (((uint32_t)p->reason_bytes[3])));
+        (intptr_t)((((uint32_t)p->reason_bytes[0]) << 24) |
+                   (((uint32_t)p->reason_bytes[1]) << 16) |
+                   (((uint32_t)p->reason_bytes[2]) << 8) |
+                   (((uint32_t)p->reason_bytes[3]))));
   }
 
   return GRPC_ERROR_NONE;
diff --git a/src/core/ext/transport/chttp2/transport/hpack_parser.c b/src/core/ext/transport/chttp2/transport/hpack_parser.c
index 003f31f58726624e99ddb87cd0b31cb61a620996..150fa00d9422b586f2b59e0b5cab0bbe0c8c8854 100644
--- a/src/core/ext/transport/chttp2/transport/hpack_parser.c
+++ b/src/core/ext/transport/chttp2/transport/hpack_parser.c
@@ -739,8 +739,8 @@ static grpc_error *finish_indexed_field(grpc_chttp2_hpack_parser *p,
   if (md == NULL) {
     return grpc_error_set_int(
         grpc_error_set_int(GRPC_ERROR_CREATE("Invalid HPACK index received"),
-                           GRPC_ERROR_INT_INDEX, p->index),
-        GRPC_ERROR_INT_SIZE, p->table.num_ents);
+                           GRPC_ERROR_INT_INDEX, (intptr_t)p->index),
+        GRPC_ERROR_INT_SIZE, (intptr_t)p->table.num_ents);
   }
   GRPC_MDELEM_REF(md);
   grpc_error *err = on_hdr(p, md, 0);
@@ -1424,8 +1424,8 @@ static grpc_error *is_binary_indexed_header(grpc_chttp2_hpack_parser *p,
   if (!elem) {
     return grpc_error_set_int(
         grpc_error_set_int(GRPC_ERROR_CREATE("Invalid HPACK index received"),
-                           GRPC_ERROR_INT_INDEX, p->index),
-        GRPC_ERROR_INT_SIZE, p->table.num_ents);
+                           GRPC_ERROR_INT_INDEX, (intptr_t)p->index),
+        GRPC_ERROR_INT_SIZE, (intptr_t)p->table.num_ents);
   }
   *is =
       grpc_is_binary_header((const char *)GPR_SLICE_START_PTR(elem->key->slice),