diff --git a/backend/main.go b/backend/main.go
index 1df18f84c38a6ea6e04317ac3f3dd2b7b8a61184..ff30068746343186de88a7890ddc516b4d3411cf 100644
--- a/backend/main.go
+++ b/backend/main.go
@@ -24,6 +24,8 @@ var imageProcessDurationResize = imageProcessDuration.WithLabelValues("resize")
 var imageProcessDurationWrite = imageProcessDuration.WithLabelValues("write")
 
 func main() {
+	defer shared.ErrorHandler()
+
 	configFile, err := os.Open("config.yaml")
 	if err != nil {
 		log.Fatalf("error opening config file: %s", err.Error())
diff --git a/frontend/main.go b/frontend/main.go
index a6896aa295b113ec66f1055fe84830973196236f..31ef61448eb87b1ebde1797ab82ef9ea89d1b688 100644
--- a/frontend/main.go
+++ b/frontend/main.go
@@ -12,6 +12,8 @@ import (
 )
 
 func main() {
+	defer shared.ErrorHandler()
+
 	configFile, err := os.Open("config.yaml")
 	if err != nil {
 		log.Fatalf("error opening config file: %s", err.Error())
diff --git a/shared/error.go b/shared/error.go
new file mode 100644
index 0000000000000000000000000000000000000000..20def717643ca56231b22841e510b55d0277afac
--- /dev/null
+++ b/shared/error.go
@@ -0,0 +1,9 @@
+package shared
+
+import "log"
+
+func ErrorHandler() {
+	if err := recover(); err != nil {
+		log.Fatalf("error occured unexpectedly: %s", err)
+	}
+}