diff --git a/bin/update-metadata.in b/bin/update-metadata.in
index 59979b3c62c326ecd17b269929b84ada4f975bdf..38a97475ed064d4518e886e453b9c0cfa3931ce9 100755
--- a/bin/update-metadata.in
+++ b/bin/update-metadata.in
@@ -108,28 +108,28 @@ foreach my $id (keys %{$configuration->{federations}}) {
             );
             $entity->update();
         } else {
-            $entity = AccountManager::Entity->new(
-                db               => $db,
-                type             => $entry->{type},
-                entityid         => $entry->{entityid},
-                display_name     => $entry->{display_name},
-                information_url  => $entry->{information_url},
-                organization_url => $entry->{organization_url},
-            );
-            if ($entry->{contacts}) {
-                my @contacts =
+            eval {
+                $entity = AccountManager::Entity->new(
+                    db               => $db,
+                    type             => $entry->{type},
+                    entityid         => $entry->{entityid},
+                    display_name     => $entry->{display_name},
+                    information_url  => $entry->{information_url},
+                    organization_url => $entry->{organization_url},
+                );
+                if ($entry->{contacts}) {
+                    my @contacts =
                     uniq
                     grep { $_ }
                     map { $_->{EmailAddress} }
                     @{$entry->{contacts}};
-                $entity->contacts(@contacts);
-            }
-            $entity->federations($id);
-            eval {
+                    $entity->contacts(@contacts);
+                }
+                $entity->federations($id);
                 $entity->save();
             };
             if ($EVAL_ERROR) {
-                warn "error while saving entity $entry->{entityid}: $EVAL_ERROR";
+                warn "error while processing entity $entry->{entityid}: $EVAL_ERROR";
             }
         }