diff --git a/src/App.vue b/src/App.vue
index 6d3a7930bb8d0b7c66b35b6abb1191880b440dcb..f161d11d2e95ebc94b94db39cd7d8175ff9130c8 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -100,6 +100,9 @@
         </h1>
         <h3 ref="wrongText">{{ $t('views.app.something_went_wrong') }}</h3>
         <p>{{ $t('views.app.its_not_your_mistake') }}</p>
+        <h3 v-if="!$store.state.netvs_online" class="text-danger">
+          <netvs-icon :beat_fade="true" icon="offline"/> {{$t('system.offline')}}
+        </h3>
         <CopyField class="shadow" variant="danger"
                    :text="global_error_sanitized"
                    height_override="60vh"
@@ -117,6 +120,12 @@
         <h3>{{ $t('views.app.new_version_available') }}</h3>
         <p>{{ $t('views.app.please_reload_page') }}</p>
       </b-modal>
+      <b-modal content-class="text-center text-danger" centered id="netvs-offline" hide-footer hide-header size="lg">
+        <h1>
+          <netvs-icon icon="offline" size="3x"></netvs-icon>
+        </h1>
+        <h3>{{ $t('system.offline') }}</h3>
+      </b-modal>
     </template>
     <template v-else>
       <b-alert variant="danger" fade show>
@@ -376,6 +385,9 @@ export default {
       window.console.debug('UPDATE!')
       self.$bvModal.show('net-suite-update')
     })
+    EventBus.$on('offline_request_failed', (payload) => {
+      self.$bvModal.show('netvs-offline')
+    })
     EventBus.$on('overwrite_breadcrumb_name_of_url', (payload) => {
       for (let i = 0; i < this.breadcrumbs.length; i++) {
         if (this.breadcrumbs[i].to === payload.url) {
@@ -454,7 +466,11 @@ export default {
         return
       }
       self.global_error = '```json\n' + self.global_error + '\n```'
-      this.$bvModal.show('net-suite-error')
+      if (this.$store.state.netvs_online) {
+        this.$bvModal.show('net-suite-error')
+      } else {
+        EventBus.$emit('offline_request_failed')
+      }
     })
     EventBus.$on('set_colorblind_mode', (payload) => {
       this.colorblind_mode = payload
diff --git a/src/vuex.js b/src/vuex.js
index cd447f6caa8fb3f605b13ba27437257ef8c9ed5d..afe2a23f45491ffd0d19a19888d0eb200940a754 100644
--- a/src/vuex.js
+++ b/src/vuex.js
@@ -221,6 +221,10 @@ const NetvsVuex = new Vuex.Store({
       }
     },
     setOnline(state, payload) {
+      // Invalidate current view when coming back online
+      if (!state.netvs_online && payload) {
+        state.reload_count++
+      }
       state.netvs_online = payload
     },
     update_session_info(state, payload) {