diff --git a/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java b/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java
index 574d6e7..0dd282a 100644
--- a/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java
+++ b/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java
@@ -36,7 +36,7 @@
 import com.google.devtools.build.lib.server.CommandProtos.RunResponse;
 import com.google.devtools.build.lib.server.CommandProtos.ServerInfo;
 import com.google.devtools.build.lib.server.CommandProtos.StartupOption;
-import com.google.devtools.build.lib.server.FailureDetails.Interrupted.InterruptedCode;
+import com.google.devtools.build.lib.server.FailureDetails.Interrupted;
 import com.google.devtools.build.lib.util.ExitCode;
 import com.google.devtools.build.lib.util.FailureDetailUtil;
 import com.google.devtools.build.lib.util.Pair;
@@ -615,7 +615,7 @@
     } catch (InterruptedException e) {
       result =
           BlazeCommandResult.failureDetail(
-              FailureDetailUtil.interrupted(InterruptedCode.INTERRUPTED_UNSPECIFIED));
+              FailureDetailUtil.interrupted(Interrupted.Code.INTERRUPTED_UNSPECIFIED));
       commandId = ""; // The default value, the client will ignore it
     }
 
diff --git a/src/main/java/com/google/devtools/build/lib/util/FailureDetailUtil.java b/src/main/java/com/google/devtools/build/lib/util/FailureDetailUtil.java
index c94b3cd..5f37275 100644
--- a/src/main/java/com/google/devtools/build/lib/util/FailureDetailUtil.java
+++ b/src/main/java/com/google/devtools/build/lib/util/FailureDetailUtil.java
@@ -20,7 +20,6 @@
 import com.google.devtools.build.lib.server.FailureDetails;
 import com.google.devtools.build.lib.server.FailureDetails.FailureDetail;
 import com.google.devtools.build.lib.server.FailureDetails.Interrupted;
-import com.google.devtools.build.lib.server.FailureDetails.Interrupted.InterruptedCode;
 import com.google.protobuf.Descriptors.EnumValueDescriptor;
 import com.google.protobuf.Descriptors.FieldDescriptor;
 import com.google.protobuf.MessageOrBuilder;
@@ -34,7 +33,7 @@
   /**
    * Returns a {@link FailureDetail} specifying {@code code} in its {@link Interrupted} submessage.
    */
-  public static FailureDetail interrupted(InterruptedCode code) {
+  public static FailureDetail interrupted(Interrupted.Code code) {
     return FailureDetail.newBuilder()
         .setInterrupted(Interrupted.newBuilder().setCode(code))
         .build();
diff --git a/src/main/protobuf/failure_details.proto b/src/main/protobuf/failure_details.proto
index 4be5ad8..5df8a58 100644
--- a/src/main/protobuf/failure_details.proto
+++ b/src/main/protobuf/failure_details.proto
@@ -94,12 +94,12 @@
 }
 
 message Interrupted {
-  enum InterruptedCode {
+  enum Code {
     // Interrupted at an unspecified time.
     INTERRUPTED_UNSPECIFIED = 0 [(metadata) = { exit_code: 8 }];
     // TODO(mschaller): Add subcategories that specify what was happening at the
     //  time of interruption.
   }
 
-  InterruptedCode code = 1;
+  Code code = 1;
 }
diff --git a/src/test/java/com/google/devtools/build/lib/server/GrpcServerTest.java b/src/test/java/com/google/devtools/build/lib/server/GrpcServerTest.java
index 189b1f4..e3459b1 100644
--- a/src/test/java/com/google/devtools/build/lib/server/GrpcServerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/server/GrpcServerTest.java
@@ -25,7 +25,7 @@
 import com.google.devtools.build.lib.server.CommandProtos.RunRequest;
 import com.google.devtools.build.lib.server.CommandProtos.RunResponse;
 import com.google.devtools.build.lib.server.CommandServerGrpc.CommandServerStub;
-import com.google.devtools.build.lib.server.FailureDetails.Interrupted.InterruptedCode;
+import com.google.devtools.build.lib.server.FailureDetails.Interrupted;
 import com.google.devtools.build.lib.server.GrpcServerImpl.BlockingStreamObserver;
 import com.google.devtools.build.lib.testutil.Suite;
 import com.google.devtools.build.lib.testutil.TestSpec;
@@ -400,7 +400,7 @@
     assertThat(secondResponse.get().hasFailureDetail()).isTrue();
     assertThat(secondResponse.get().getFailureDetail().hasInterrupted()).isTrue();
     assertThat(secondResponse.get().getFailureDetail().getInterrupted().getCode())
-        .isEqualTo(InterruptedCode.INTERRUPTED_UNSPECIFIED);
+        .isEqualTo(Interrupted.Code.INTERRUPTED_UNSPECIFIED);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/util/FailureDetailUtilTest.java b/src/test/java/com/google/devtools/build/lib/util/FailureDetailUtilTest.java
index f161e86..b589ebf 100644
--- a/src/test/java/com/google/devtools/build/lib/util/FailureDetailUtilTest.java
+++ b/src/test/java/com/google/devtools/build/lib/util/FailureDetailUtilTest.java
@@ -16,7 +16,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import com.google.devtools.build.lib.server.FailureDetails.Interrupted.InterruptedCode;
+import com.google.devtools.build.lib.server.FailureDetails.Interrupted;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -29,7 +29,7 @@
   public void testGetInterruptedExitCode() {
     assertThat(
             FailureDetailUtil.getExitCode(
-                FailureDetailUtil.interrupted(InterruptedCode.INTERRUPTED_UNSPECIFIED)))
+                FailureDetailUtil.interrupted(Interrupted.Code.INTERRUPTED_UNSPECIFIED)))
         .isEqualTo(ExitCode.INTERRUPTED);
   }
 }
