diff --git a/api/admin.py b/api/admin.py
index 99ae6b2..0c19531 100644
--- a/api/admin.py
+++ b/api/admin.py
@@ -1,5 +1,8 @@
+from typing import Any
 from django.contrib import admin
 from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
+from django.forms.models import ModelForm
+from django.http.request import HttpRequest
 from api.models import User, Atoll, Island, TemporaryUser
 from django.contrib.auth.models import Permission
 
@@ -63,6 +66,14 @@ class UserAdmin(BaseUserAdmin):
         ("Important dates", {"fields": ("last_login", "date_joined")}),
     )
 
+    def save_model(self, request, obj, form, change):
+        if not obj.email:
+            if obj.mobile:
+                obj.email = f"{obj.mobile}@sarlink.net"
+            else:
+                obj.email = f"user_{obj.pk or 'new'}@sarlink.net"
+        super().save_model(request, obj, form, change)
+
 
 class TemporaryUserAdmin(admin.ModelAdmin):
     list_display = (
diff --git a/djangopasswordlessknox/utils.py b/djangopasswordlessknox/utils.py
index 529b064..7fb7a6a 100644
--- a/djangopasswordlessknox/utils.py
+++ b/djangopasswordlessknox/utils.py
@@ -44,6 +44,29 @@ def authenticate_by_token(callback_token):
 
 
 def create_callback_token_for_user(user, token_type):
+    logger.info(
+        f"Attempting to create token for user: {user}, user.pk: {user.pk if user else 'None'}"
+    )
+    if user and user.pk:
+        try:
+            # Explicitly check if the user exists in the database
+            User.objects.get(pk=user.pk)
+            logger.info(
+                f"User with pk {user.pk} confirmed to exist in DB before token creation."
+            )
+        except User.DoesNotExist:
+            logger.error(
+                f"CRITICAL: User with pk {user.pk} DOES NOT EXIST in DB right before token creation for {user}!"
+            )
+            return None
+            # You might want to return None or raise an exception here to prevent the IntegrityError
+            # For example: return None
+    else:
+        logger.error(
+            f"CRITICAL: Invalid user object passed to create_callback_token_for_user: {user}"
+        )
+        # return None
+
     token = None
     token_type = token_type.upper()