diff --git a/pages/configurations/_configurationId/contacts.vue b/pages/configurations/_configurationId/contacts.vue
index 4880d9b6f0d15dca2a5840966fdf04a8c8468019..edfb1e2ae288ec036815858286b3d7fefde14354 100644
--- a/pages/configurations/_configurationId/contacts.vue
+++ b/pages/configurations/_configurationId/contacts.vue
@@ -33,28 +33,34 @@ implied. See the Licence for the specific language governing
 permissions and limitations under the Licence.
 -->
 <template>
+  <ProgressIndicator
+    v-model="isLoading"
+  />
   <NuxtChild/>
 </template>
 
 <script lang="ts">
 import { Component, Vue } from 'nuxt-property-decorator'
 
-import { Contact } from '@/models/Contact'
 
-import ContactBasicData from '@/components/ContactBasicData.vue'
-import HintCard from '@/components/HintCard.vue'
 import ProgressIndicator from '@/components/ProgressIndicator.vue'
 import { mapActions } from 'vuex'
 
 @Component({
+  components: { ProgressIndicator },
   methods: mapActions('configurations', ['loadConfigurationContacts'])
 })
 export default class ContactTab extends Vue {
+  private isLoading = false
+
   created () {
     try {
+      this.isLoading = true
       this.loadConfigurationContacts(this.configurationId)
     } catch (e) {
       this.$store.commit('snackbar/setError', 'Failed to fetch contacts')
+    }finally {
+      this.isLoading = false
     }
   }
 
diff --git a/pages/devices/_deviceId/contacts.vue b/pages/devices/_deviceId/contacts.vue
index 9039adf8373b6279075428b331a5415a08b21bb4..f7641d4f5c87c4da3450d412ca9798e83b3da7a1 100644
--- a/pages/devices/_deviceId/contacts.vue
+++ b/pages/devices/_deviceId/contacts.vue
@@ -34,7 +34,6 @@ permissions and limitations under the Licence.
       v-model="isLoading"
     />
     <NuxtChild/>
-    />
   </div>
 
 </template>