diff --git a/src/jsMain/kotlin/ui/SheetsModal.kt b/src/jsMain/kotlin/ui/SheetsModal.kt
index 537931cd812524c93fcce1a505e2e6e2b214decf..fc274fd606f39a34f852f59866f6556b36f0420c 100644
--- a/src/jsMain/kotlin/ui/SheetsModal.kt
+++ b/src/jsMain/kotlin/ui/SheetsModal.kt
@@ -4,6 +4,7 @@ import datasources.GSheet
 import androidx.compose.runtime.*
 import gapi.*
 import kotlinx.browser.document
+import kotlinx.browser.window
 import kotlinx.coroutines.launch
 import org.jetbrains.compose.web.attributes.InputType
 import org.jetbrains.compose.web.attributes.disabled
@@ -106,9 +107,18 @@ private object SheetsModal: ModalType {
                 classes("uk-button", "uk-button-primary")
                 onClick {
                     scope.launch {
-                        sheet = GSheet.new(sheetUrl, sheetNum-1)
-                        sheet?.process { setState(ImportInProgress(it)) }
-                        setState(Ready)
+                        try {
+                            sheet = GSheet.new(sheetUrl, sheetNum - 1)
+                            sheet?.process { setState(ImportInProgress(it)) }
+                            setState(Ready)
+                        } catch (e: dynamic) {
+                            val str = "$e" + if(e is Throwable) "\n" + e.stackTraceToString() else ""
+                            window.alert(str)
+                            if (e is Throwable) {
+                                console.log(e)
+                                e.printStackTrace()
+                            }
+                        }
                     }
                     (document.getElementById(closeId) as HTMLElement).click()
                 }