diff --git a/flutter-candidate.txt b/flutter-candidate.txt
index d9bece0..135d4ee 100644
--- a/flutter-candidate.txt
+++ b/flutter-candidate.txt
@@ -1 +1 @@
-b0e66e6dd81c20dae6a3ce2ee515a165dbbbfb3e
+02a06a851ff3d25e353f5f33f46c47f179e70467
diff --git a/packages/devtools_app/lib/src/framework/observer/_memory_web.dart b/packages/devtools_app/lib/src/framework/observer/_memory_web.dart
index c6e56a3..251cfb6 100644
--- a/packages/devtools_app/lib/src/framework/observer/_memory_web.dart
+++ b/packages/devtools_app/lib/src/framework/observer/_memory_web.dart
@@ -65,7 +65,8 @@
 @JS()
 extension type _UserAgentSpecificMemoryBreakdownAttributionContainerElement._(
   JSObject _
-) implements JSObject {
+)
+    implements JSObject {
   external String get id;
 
   external String get url;
diff --git a/packages/devtools_app/test/service/timeline_streams_test.dart b/packages/devtools_app/test/service/timeline_streams_test.dart
index 7c34529..c51353c 100644
--- a/packages/devtools_app/test/service/timeline_streams_test.dart
+++ b/packages/devtools_app/test/service/timeline_streams_test.dart
@@ -22,30 +22,23 @@
       await env.tearDownEnvironment(force: true);
     });
 
-    test(
-      'timeline streams initialized on vm service opened',
-      () async {
-        await env.setupEnvironment();
+    test('timeline streams initialized on vm service opened', () async {
+      await env.setupEnvironment();
 
-        // Await a short delay to make sure the timelineStreamManager is done
-        // initializing.
-        await delay();
+      // Await a short delay to make sure the timelineStreamManager is done
+      // initializing.
+      await delay();
 
-        expect(serviceConnection.serviceManager.service, equals(env.service));
-        expect(serviceConnection.timelineStreamManager, isNotNull);
-        expect(
-          serviceConnection.timelineStreamManager.basicStreams,
-          isNotEmpty,
-        );
-        expect(
-          serviceConnection.timelineStreamManager.advancedStreams,
-          isNotEmpty,
-        );
+      expect(serviceConnection.serviceManager.service, equals(env.service));
+      expect(serviceConnection.timelineStreamManager, isNotNull);
+      expect(serviceConnection.timelineStreamManager.basicStreams, isNotEmpty);
+      expect(
+        serviceConnection.timelineStreamManager.advancedStreams,
+        isNotEmpty,
+      );
 
-        await env.tearDownEnvironment();
-      },
-      timeout: const Timeout.factor(4),
-    );
+      await env.tearDownEnvironment();
+    }, timeout: const Timeout.factor(4));
 
     test('notifies on stream change', () async {
       await env.setupEnvironment();
diff --git a/packages/devtools_shared/CHANGELOG.md b/packages/devtools_shared/CHANGELOG.md
index dd30246..0f1f770 100644
--- a/packages/devtools_shared/CHANGELOG.md
+++ b/packages/devtools_shared/CHANGELOG.md
@@ -3,6 +3,9 @@
 Use of this source code is governed by a BSD-style license that can be
 found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd.
 -->
+# 13.0.1
+* Handle null values for `FlutterStore.flutterClientId`.
+
 # 13.0.0
 * **Breaking change:** Removed `DevToolsStoreKeys.analyticsEnabled` and
 `DevToolsStoreKeys.isFirstRun` since these were only used for legacy analytics.
diff --git a/packages/devtools_shared/lib/src/server/flutter_store.dart b/packages/devtools_shared/lib/src/server/flutter_store.dart
index 3441070..a45ebda 100644
--- a/packages/devtools_shared/lib/src/server/flutter_store.dart
+++ b/packages/devtools_shared/lib/src/server/flutter_store.dart
@@ -17,5 +17,6 @@
 
   bool get gaEnabled => properties[gaEnabledKey] == true;
 
-  String get flutterClientId => properties[flutterClientIdKey] as String;
+  String get flutterClientId =>
+      (properties[flutterClientIdKey] as String?) ?? '';
 }
diff --git a/packages/devtools_shared/lib/src/server/server_api.dart b/packages/devtools_shared/lib/src/server/server_api.dart
index 4cc838a..f9b5072 100644
--- a/packages/devtools_shared/lib/src/server/server_api.dart
+++ b/packages/devtools_shared/lib/src/server/server_api.dart
@@ -68,13 +68,8 @@
           dtd,
         );
 
-      // TODO(kenz): remove legacy analytics once the unified analytics rollout
-      // is complete and verified for robustness (est. Fall 2025).
-
       // ----- Flutter Tool GA store. -----
       case apiGetFlutterGAClientId:
-        // Flutter Tool GA clientId - ONLY get Flutter's clientId if enabled is
-        // true.
         return _encodeResponse(
           LocalFileSystem.flutterStoreExists()
               ? _flutterStore.flutterClientId
diff --git a/packages/devtools_shared/pubspec.yaml b/packages/devtools_shared/pubspec.yaml
index 286fefc..dce148c 100644
--- a/packages/devtools_shared/pubspec.yaml
+++ b/packages/devtools_shared/pubspec.yaml
@@ -4,7 +4,7 @@
 name: devtools_shared
 description: Package of shared Dart structures between devtools_app, dds, and other tools.
 
-version: 13.0.0
+version: 13.0.1
 
 repository: https://github.com/flutter/devtools/tree/master/packages/devtools_shared
 
diff --git a/packages/devtools_shared/test/server/persistent_properties_test.dart b/packages/devtools_shared/test/server/persistent_properties_test.dart
index a1b667c..8358e7a 100644
--- a/packages/devtools_shared/test/server/persistent_properties_test.dart
+++ b/packages/devtools_shared/test/server/persistent_properties_test.dart
@@ -15,7 +15,8 @@
     const storeName = 'test_store';
 
     setUp(() {
-      tempDir = Directory.systemTemp.createTempSync('persistent_properties_test');
+      tempDir =
+          Directory.systemTemp.createTempSync('persistent_properties_test');
       properties = IOPersistentProperties(
         storeName,
         documentDirPath: tempDir.path,
