diff --git a/pkg/analyzer/lib/src/generated/gn.dart b/pkg/analyzer/lib/src/generated/gn.dart
index fa17c4e..abbed00 100644
--- a/pkg/analyzer/lib/src/generated/gn.dart
+++ b/pkg/analyzer/lib/src/generated/gn.dart
@@ -157,7 +157,9 @@
   /**
    * Find the GN workspace that contains the given [path].
    *
-   * Return `null` if a workspace could not be found.
+   * Return `null` if a workspace could not be found. For a workspace to be
+   * found, both a `.jiri_root` file must be found, and at least one "packages"
+   * file must be found in [path]'s output directory.
    */
   static GnWorkspace find(ResourceProvider provider, String path) {
     Context context = provider.pathContext;
@@ -185,7 +187,7 @@
         return new GnWorkspace._(provider, root, packagesFiles);
       }
 
-      // Go up the folder.
+      // Go up one folder.
       folder = parent;
     }
   }
diff --git a/pkg/analyzer/test/generated/gn_test.dart b/pkg/analyzer/test/generated/gn_test.dart
index 36596ba..46ff4ea 100644
--- a/pkg/analyzer/test/generated/gn_test.dart
+++ b/pkg/analyzer/test/generated/gn_test.dart
@@ -22,6 +22,14 @@
     expect(workspace, isNull);
   }
 
+  void test_find_noPackagesFiles() {
+    newFolder('/workspace/.jiri_root');
+    newFolder('/workspace/some/code');
+    GnWorkspace workspace =
+        GnWorkspace.find(resourceProvider, convertPath('/workspace'));
+    expect(workspace, isNull);
+  }
+
   void test_find_notAbsolute() {
     expect(
         () => GnWorkspace.find(resourceProvider, convertPath('not_absolute')),
@@ -96,6 +104,23 @@
     expect(workspace.packageMap['flutter'][0].path, packageLocation);
   }
 
+  void test_packages_fallbackBuildDirWithUselessConfig() {
+    newFolder('/workspace/.jiri_root');
+    newFolder('/workspace/some/code');
+    newFile('/workspace/some/code/pubspec.yaml');
+    newFile('/workspace/.config', content: 'FOO=foo\n' + 'BAR=bar\n');
+    String packageLocation = convertPath('/workspace/this/is/the/package');
+    Uri packageUri = resourceProvider.pathContext.toUri(packageLocation);
+    newFile('/workspace/out/debug-x87_128/dartlang/gen/some/code/foo.packages',
+        content: 'flutter:$packageUri');
+    GnWorkspace workspace =
+        GnWorkspace.find(resourceProvider, convertPath('/workspace/some/code'));
+    expect(workspace, isNotNull);
+    expect(workspace.root, convertPath('/workspace'));
+    expect(workspace.packageMap.length, 1);
+    expect(workspace.packageMap['flutter'][0].path, packageLocation);
+  }
+
   void test_packages_multipleCandidates() {
     newFolder('/workspace/.jiri_root');
     newFolder('/workspace/some/code');
