diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
index aafa943..032434d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
@@ -41,6 +41,7 @@
 import com.google.devtools.build.lib.skyframe.AspectValue.AspectKey;
 import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.DependencyEvaluationException;
 import com.google.devtools.build.lib.skyframe.SkyframeExecutor.BuildViewProvider;
+import com.google.devtools.build.lib.skyframe.SkylarkImportLookupFunction.SkylarkImportFailedException;
 import com.google.devtools.build.lib.syntax.Type.ConversionException;
 import com.google.devtools.build.lib.util.Preconditions;
 import com.google.devtools.build.skyframe.SkyFunction;
@@ -72,11 +73,11 @@
   @Nullable
   public static SkylarkAspect loadSkylarkAspect(
       Environment env, Label extensionLabel, String skylarkValueName)
-      throws ConversionException {
-    
+      throws ConversionException, SkylarkImportFailedException {
     SkyKey importFileKey = SkylarkImportLookupValue.key(extensionLabel, false);
     SkylarkImportLookupValue skylarkImportLookupValue =
-        (SkylarkImportLookupValue) env.getValue(importFileKey);
+        (SkylarkImportLookupValue) env.getValueOrThrow(
+            importFileKey, SkylarkImportFailedException.class);
     if (skylarkImportLookupValue == null) {
       return null;
     }
@@ -107,6 +108,8 @@
         skylarkAspect =
             loadSkylarkAspect(
                 env, skylarkAspectClass.getExtensionLabel(), skylarkAspectClass.getExportedName());
+      } catch (SkylarkImportFailedException e) {
+        throw new AspectFunctionException(skyKey, e);
       } catch (ConversionException e) {
         throw new AspectFunctionException(skyKey, e);
       }
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
index be7ff9b..af89970 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
@@ -61,6 +61,7 @@
 import com.google.devtools.build.lib.skyframe.BuildInfoCollectionValue.BuildInfoKeyAndConfig;
 import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.ConfiguredValueCreationException;
 import com.google.devtools.build.lib.skyframe.SkyframeActionExecutor.ConflictException;
+import com.google.devtools.build.lib.skyframe.SkylarkImportLookupFunction.SkylarkImportFailedException;
 import com.google.devtools.build.lib.util.Preconditions;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.devtools.build.skyframe.CycleInfo;
@@ -425,8 +426,10 @@
       // that the only errors should be analysis errors.
       Preconditions.checkState(
           cause instanceof ConfiguredValueCreationException
-              || cause instanceof AspectCreationException // for top-level aspects
-              || cause instanceof ActionConflictException,
+              || cause instanceof ActionConflictException
+              // For top-level aspects
+              || cause instanceof AspectCreationException
+              || cause instanceof SkylarkImportFailedException,
           "%s -> %s",
           key,
           errorInfo);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ToplevelSkylarkAspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ToplevelSkylarkAspectFunction.java
index cac4c02..a883d60 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ToplevelSkylarkAspectFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ToplevelSkylarkAspectFunction.java
@@ -17,8 +17,10 @@
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.packages.AspectParameters;
 import com.google.devtools.build.lib.rules.SkylarkRuleClassFunctions.SkylarkAspect;
+import com.google.devtools.build.lib.skyframe.AspectFunction.AspectCreationException;
 import com.google.devtools.build.lib.skyframe.AspectValue.SkylarkAspectLoadingKey;
 import com.google.devtools.build.lib.skyframe.SkylarkImportLookupFunction.SkylarkImportFailedException;
 import com.google.devtools.build.lib.syntax.Type.ConversionException;
@@ -53,6 +55,7 @@
       labelLookupMap =
           SkylarkImportLookupFunction.labelsForAbsoluteImports(ImmutableSet.of(extensionFile), env);
     } catch (SkylarkImportFailedException e) {
+      env.getListener().handle(Event.error(e.getMessage()));
       throw new LoadSkylarkAspectFunctionException(e, skyKey);
     }
     if (labelLookupMap == null) {
@@ -63,8 +66,14 @@
     try {
       skylarkAspect = AspectFunction.loadSkylarkAspect(
           env, labelLookupMap.get(extensionFile), skylarkValueName);
+    } catch (SkylarkImportFailedException e) {
+      env.getListener().handle(Event.error(e.getMessage()));
+      throw new LoadSkylarkAspectFunctionException(
+          new AspectCreationException(e.getMessage()), skyKey);
     } catch (ConversionException e) {
-      throw new LoadSkylarkAspectFunctionException(e, skyKey);
+      env.getListener().handle(Event.error(e.getMessage()));
+      throw new LoadSkylarkAspectFunctionException(
+          new AspectCreationException(e.getMessage()), skyKey);
     }
     if (skylarkAspect == null) {
       return null;
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
index 2b97b11..33ee3af 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
@@ -394,4 +394,67 @@
             + "The following files have no generating action:\n"
             + "test/missing_in_action.txt\n");
   }
+
+  @Test
+  public void topLevelAspectIsNotAnAspect() throws Exception {
+    scratch.file("test/aspect.bzl", "MyAspect = 4");
+    scratch.file("test/BUILD", "java_library(name = 'xxx')");
+
+    reporter.removeHandler(failFastHandler);
+    try {
+      update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:xxx");
+      fail();
+    } catch (ViewCreationFailedException e) {
+      // expect to fail.
+    }
+    assertContainsEvent("MyAspect from //test:aspect.bzl is not an aspect");
+  }
+
+  @Test
+  public void topLevelAspectDoesNotExist() throws Exception {
+    scratch.file("test/aspect.bzl", "");
+    scratch.file("test/BUILD", "java_library(name = 'xxx')");
+
+    reporter.removeHandler(failFastHandler);
+    try {
+      update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:xxx");
+      fail();
+    } catch (ViewCreationFailedException e) {
+      // expect to fail.
+    }
+    assertContainsEvent("MyAspect from //test:aspect.bzl is not an aspect");
+  }
+
+  @Test
+  public void topLevelAspectDoesNotExist2() throws Exception {
+    scratch.file("test/BUILD", "java_library(name = 'xxx')");
+
+    reporter.removeHandler(failFastHandler);
+    try {
+      update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:xxx");
+      fail();
+    } catch (ViewCreationFailedException e) {
+      // expect to fail.
+    }
+    assertContainsEvent(
+        "Extension file not found. Unable to load file '//test:aspect.bzl': "
+        + "file doesn't exist or isn't a file");
+  }
+
+  @Test
+  public void topLevelAspectDoesNotExistNoBuildFile() throws Exception {
+    scratch.file("test/BUILD", "java_library(name = 'xxx')");
+
+    reporter.removeHandler(failFastHandler);
+    try {
+      update(ImmutableList.of("foo/aspect.bzl%MyAspect"), "//test:xxx");
+      fail();
+    } catch (ViewCreationFailedException e) {
+      // expect to fail.
+    }
+    assertContainsEvent(
+        "Every .bzl file must have a corresponding package, but 'foo' does not have one. "
+        + "Please create a BUILD file in the same or any parent directory. "
+        + "Note that this BUILD file does not need to do anything except exist.");
+  }
 }
