diff --git a/src/views/AccountViewView.vue b/src/views/AccountViewView.vue
index 96b1d83e..cc608810 100644
--- a/src/views/AccountViewView.vue
+++ b/src/views/AccountViewView.vue
@@ -68,9 +68,9 @@
           class="inline-block text-md uppercase bg-gradient-to-b from-blue-400 to-blue-700 shadow-[inset_0_-1px_0_0_rgba(0,0,0,0.5)] text-white px-4 py-2 rounded-md"
           @click="
             () =>
-              ($refs.userNameDialog as UserNameDialog).open(
-                (name) => (givenName = name),
-              )
+              ($refs.userNameDialog as UserNameDialog).open((name) => {
+                if (name) givenName = name;
+              })
           "
         >
           Set Your Name
@@ -437,7 +437,7 @@
           <b>{{ endorserLimits?.maxClaimsPerWeek || "?" }}</b> for this week.
           Your claims counter resets at
           <b class="whitespace-nowrap">{{
-            readableDate(endorserLimits?.nextWeekBeginDateTime)
+            readableDate(endorserLimits?.nextWeekBeginDateTime ?? "")
           }}</b>
         </p>
         <p class="mt-3 text-sm">
@@ -454,7 +454,7 @@
           <i>(You cannot register anyone on your first day.)</i>
           Your registration counter resets at
           <b class="whitespace-nowrap">
-            {{ readableDate(endorserLimits?.nextMonthBeginDateTime) }}
+            {{ readableDate(endorserLimits?.nextMonthBeginDateTime ?? "") }}
           </b>
         </p>
         <p class="mt-3 text-sm">
@@ -463,7 +463,7 @@
           <b>{{ imageLimits?.maxImagesPerWeek || "?" }}</b> for this week. Your
           image counter resets at
           <b class="whitespace-nowrap">{{
-            readableDate(imageLimits?.nextWeekBeginDateTime)
+            readableDate(imageLimits?.nextWeekBeginDateTime ?? "")
           }}</b>
         </p>
       </div>
@@ -976,11 +976,10 @@ import Dexie from "dexie";
 import "dexie-export-import";
 // @ts-expect-error - they aren't exporting it but it's there
 import { ImportProgress } from "dexie-export-import";
-import { LeafletMouseEvent } from "leaflet";
 import * as R from "ramda";
 import { IIdentifier } from "@veramo/core";
 import { ref } from "vue";
-import { Component, Vue } from "vue-facing-decorator";
+import { Component, Vue, Hook } from "vue-facing-decorator";
 import { RouteLocationNormalizedLoaded, Router } from "vue-router";
 import { useClipboard } from "@vueuse/core";
 import { LMap, LMarker, LTileLayer } from "@vue-leaflet/vue-leaflet";
@@ -1016,15 +1015,14 @@ import {
 import * as databaseUtil from "../db/databaseUtil";
 import {
   clearPasskeyToken,
-  EndorserRateLimits,
-  ErrorResponse,
   errorStringForLog,
   fetchEndorserRateLimits,
   fetchImageRateLimits,
   getHeaders,
-  ImageRateLimits,
   tokenExpiryTimeDescription,
 } from "../libs/endorserServer";
+import { EndorserRateLimits, ImageRateLimits } from "../interfaces/limits";
+import { ErrorResponse } from "../interfaces/common";
 import {
   DAILY_CHECK_TITLE,
   DIRECT_PUSH_TITLE,
@@ -1040,7 +1038,6 @@ const inputImportFileNameRef = ref<Blob>();
   components: {
     EntityIcon,
     ImageMethodDialog,
-    LeafletMouseEvent,
     LMap,
     LMarker,
     LTileLayer,
@@ -1117,8 +1114,11 @@ export default class AccountViewView extends Vue {
    *
    * @throws Will display specific messages to the user based on different errors.
    */
+  @Hook("mounted")
   async mounted() {
     try {
+      // eslint-disable-next-line no-console
+      console.log("[AccountViewView] -- mounted", process.env.VITE_PLATFORM);
       // Initialize component state with values from the database or defaults
       await this.initializeState();
       await this.processIdentity();
@@ -1145,7 +1145,12 @@ export default class AccountViewView extends Vue {
             throw Error("Unable to load profile.");
           }
         } catch (error) {
-          if (error.status === 404) {
+          if (
+            error &&
+            typeof error === "object" &&
+            "status" in error &&
+            error.status === 404
+          ) {
             // this is ok: the profile is not yet created
           } else {
             databaseUtil.logConsoleAndDb(
@@ -1676,7 +1681,9 @@ export default class AccountViewView extends Vue {
   }
 
   async uploadImportFile(event: Event) {
-    inputImportFileNameRef.value = (event.target as EventTarget).files[0];
+    inputImportFileNameRef.value = (
+      event.target as HTMLInputElement
+    ).files?.[0];
   }
 
   showContactImport() {
@@ -1886,6 +1893,11 @@ export default class AccountViewView extends Vue {
   }
 
   async onClickSaveApiServer() {
+    console.log("[AccountViewView] -- Starting API server update", {
+      current: this.apiServer,
+      new: this.apiServerInput,
+      component: "AccountViewView",
+    });
     logger.debug("[AccountViewView] Starting API server update", {
       current: this.apiServer,
       new: this.apiServerInput,
@@ -2123,6 +2135,7 @@ export default class AccountViewView extends Vue {
       const headers = await getHeaders(this.activeDid);
       const payload: UserProfile = {
         description: this.userProfileDesc,
+        issuerDid: this.activeDid,
       };
       if (this.userProfileLatitude && this.userProfileLongitude) {
         payload.locLat = this.userProfileLatitude;
@@ -2164,11 +2177,14 @@ export default class AccountViewView extends Vue {
       if (USE_DEXIE_DB) {
         logConsoleAndDb("Error saving profile: " + errorStringForLog(error));
       }
-      const errorMessage: string =
-        error.response?.data?.error?.message ||
-        error.response?.data?.error ||
-        error.message ||
-        "There was an error saving your profile.";
+      let errorMessage = "There was an error saving your profile.";
+      if (error instanceof AxiosError) {
+        errorMessage =
+          error.response?.data?.error?.message ||
+          error.response?.data?.error ||
+          error.message ||
+          errorMessage;
+      }
       this.$notify(
         {
           group: "alert",
@@ -2259,11 +2275,14 @@ export default class AccountViewView extends Vue {
       if (USE_DEXIE_DB) {
         logConsoleAndDb("Error deleting profile: " + errorStringForLog(error));
       }
-      const errorMessage: string =
-        error.response?.data?.error?.message ||
-        error.response?.data?.error ||
-        error.message ||
-        "There was an error deleting your profile.";
+      let errorMessage = "There was an error deleting your profile.";
+      if (error instanceof AxiosError) {
+        errorMessage =
+          error.response?.data?.error?.message ||
+          error.response?.data?.error ||
+          error.message ||
+          errorMessage;
+      }
       this.$notify(
         {
           group: "alert",