diff --git a/aos/util/file.cc b/aos/util/file.cc
index 52657a9..973ab3c 100644
--- a/aos/util/file.cc
+++ b/aos/util/file.cc
@@ -200,11 +200,19 @@
   PCHECK(file_.get() != -1) << ": opening " << filename;
 }
 
-absl::Span<char> FileReader::ReadContents(absl::Span<char> buffer) {
+std::optional<absl::Span<char>> FileReader::ReadContents(
+    absl::Span<char> buffer) {
   PCHECK(0 == lseek(file_.get(), 0, SEEK_SET));
   const ssize_t result = read(file_.get(), buffer.data(), buffer.size());
+  if (result < 0) {
+    // Read timeout for an i2c request returns this.
+    if (errno == EREMOTEIO) {
+      return std::nullopt;
+    }
+  }
+
   PCHECK(result >= 0);
-  return {buffer.data(), static_cast<size_t>(result)};
+  return absl::Span<char>{buffer.data(), static_cast<size_t>(result)};
 }
 
 FileWriter::FileWriter(std::string_view filename, mode_t permissions)
@@ -216,21 +224,25 @@
 // absl::SimpleAtoi doesn't interpret a leading 0x as hex, which we need here.
 // Instead, we use the flatbufers API, which unfortunately relies on NUL
 // termination.
-int32_t FileReader::ReadInt32() {
+std::optional<int32_t> FileReader::ReadInt32() {
   // Maximum characters for a 32-bit integer, +1 for the NUL.
   // Hex is the same size with the leading 0x.
   std::array<char, 11> buffer;
   int32_t result;
-  const auto string_span =
+  const std::optional<absl::Span<char>> string_span =
       ReadContents(absl::Span<char>(buffer.data(), buffer.size())
                        .subspan(0, buffer.size() - 1));
+  if (!string_span.has_value()) {
+    return std::nullopt;
+  }
+
   // Verify we found the newline.
-  CHECK_EQ(buffer[string_span.size() - 1], '\n');
+  CHECK_EQ(buffer[string_span->size() - 1], '\n');
   // Truncate the newline.
-  buffer[string_span.size() - 1] = '\0';
+  buffer[string_span->size() - 1] = '\0';
   CHECK(flatbuffers::StringToNumber(buffer.data(), &result))
       << ": Error parsing string to integer: "
-      << std::string_view(string_span.data(), string_span.size());
+      << std::string_view(string_span->data(), string_span->size());
 
   return result;
 }
