diff --git a/src/main/java/nl/wur/bif/pantools/pangenome/FunctionalAnnotations.java b/src/main/java/nl/wur/bif/pantools/pangenome/FunctionalAnnotations.java
index 1d44cab0d5380049d06b021fff390852b59925fd..b953839fd6e86823b70b48c20d00dd76b8a4fc3d 100644
--- a/src/main/java/nl/wur/bif/pantools/pangenome/FunctionalAnnotations.java
+++ b/src/main/java/nl/wur/bif/pantools/pangenome/FunctionalAnnotations.java
@@ -4803,7 +4803,7 @@ public class FunctionalAnnotations {
             try {
                 downloadDatabase(functionalDatabasesPath, "go-basic.obo", "http://purl.obolibrary.org/obo/go/go-basic.obo");
             } catch (IOException e) {
-                Pantools.logger.error("Unable to download GO database.", e);
+                Pantools.logger.error("Error while downloading GO database.");
             }
         }
         if (!pfamDatabaseExists) {
@@ -4842,8 +4842,17 @@ public class FunctionalAnnotations {
      */
     private void downloadDatabase(Path functionalDatabasesPath, String databaseName, String databaseUrl) throws IOException {
         Pantools.logger.info("Downloading {} database from {}", databaseName, databaseUrl);
+
+        // download database
         URL url = new URL(databaseUrl);
         FileUtils.copyURLToFile(url, functionalDatabasesPath.resolve(databaseName).toFile());
+
+        // check if download was successful
+        if (!functionalDatabasesPath.resolve(databaseName).toFile().exists()) {
+            throw new RuntimeException("Unable to download " + databaseName + " database.");
+        }
+
+        // decompress database
         if (databaseName.endsWith(".tar.gz")) {
             Pantools.logger.debug("Unarchiving database.");
             unarchiveTarball(functionalDatabasesPath.resolve(databaseName), functionalDatabasesPath);