Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudMachine.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudMachine.cpp	(revision 83254)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudMachine.cpp	(revision 83255)
@@ -49,4 +49,5 @@
     , m_strName(other.m_strName)
     , m_fAccessible(other.m_fAccessible)
+    , m_strAccessError(other.m_strAccessError)
     , m_enmMachineState(other.m_enmMachineState)
     , m_strOsType(other.m_strOsType)
@@ -69,26 +70,53 @@
 {
     /* Acquire instance info sync way, be aware, this is blocking stuff, it takes some time: */
-    const QMap<KVirtualSystemDescriptionType, QString> instanceInfoMap = getInstanceInfo(m_comCloudClient, m_strId);
+    const QMap<KVirtualSystemDescriptionType, QString> instanceInfoMap = getInstanceInfo(m_comCloudClient, m_strId, m_strAccessError);
+    /* Update accessibility state: */
+    m_fAccessible = m_strAccessError.isNull();
 
-    /* Refresh corresponding values: */
-    m_strOsType = fetchOsType(instanceInfoMap);
-    m_iMemorySize = fetchMemorySize(instanceInfoMap);
-    m_iCpuCount = fetchCpuCount(instanceInfoMap);
-    m_enmMachineState = fetchMachineState(instanceInfoMap);
-    m_strShape = fetchShape(instanceInfoMap);
-    m_strDomain = fetchDomain(instanceInfoMap);
-    m_strBootingFirmware = fetchBootingFirmware(instanceInfoMap);
-    m_strImageId = fetchImageId(instanceInfoMap);
+    /* Refresh corresponding values if accessible: */
+    if (m_fAccessible)
+    {
+        m_strOsType = fetchOsType(instanceInfoMap);
+        m_iMemorySize = fetchMemorySize(instanceInfoMap);
+        m_iCpuCount = fetchCpuCount(instanceInfoMap);
+        m_enmMachineState = fetchMachineState(instanceInfoMap);
+        m_strShape = fetchShape(instanceInfoMap);
+        m_strDomain = fetchDomain(instanceInfoMap);
+        m_strBootingFirmware = fetchBootingFirmware(instanceInfoMap);
+        m_strImageId = fetchImageId(instanceInfoMap);
 
-    /* Acquire image info sync way, be aware, this is blocking stuff, it takes some time: */
-    const QMap<QString, QString> imageInfoMap = getImageInfo(m_comCloudClient, m_strImageId);
-    //printf("Image info:\n");
-    //foreach (const QString &strKey, imageInfoMap.keys())
-    //    printf("key = %s, value = %s\n", strKey.toUtf8().constData(), imageInfoMap.value(strKey).toUtf8().constData());
-    //printf("\n");
+        /* Acquire image info sync way, be aware, this is blocking stuff, it takes some time: */
+        const QMap<QString, QString> imageInfoMap = getImageInfo(m_comCloudClient, m_strImageId, m_strAccessError);
+        /* Update accessibility state: */
+        m_fAccessible = m_strAccessError.isNull();
 
-    /* Sorry, but these are hardcoded in Main: */
-    m_strImageName = imageInfoMap.value("display name");
-    m_strImageSize = imageInfoMap.value("size");
+        //printf("Image info:\n");
+        //foreach (const QString &strKey, imageInfoMap.keys())
+        //    printf("key = %s, value = %s\n", strKey.toUtf8().constData(), imageInfoMap.value(strKey).toUtf8().constData());
+        //printf("\n");
+
+        /* Refresh corresponding values if accessible: */
+        if (m_fAccessible)
+        {
+            /* Sorry, but these are hardcoded in Main: */
+            m_strImageName = imageInfoMap.value("display name");
+            m_strImageSize = imageInfoMap.value("size");
+        }
+    }
+
+    /* Reset everything if not accessible: */
+    if (!m_fAccessible)
+    {
+        m_enmMachineState = KMachineState_PoweredOff;
+        m_strOsType = "Other";
+        m_iMemorySize = 0;
+        m_iCpuCount = 0;
+        m_strShape.clear();
+        m_strDomain.clear();
+        m_strBootingFirmware.clear();
+        m_strImageId.clear();
+        m_strImageName.clear();
+        m_strImageSize.clear();
+    }
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudMachine.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudMachine.h	(revision 83254)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudMachine.h	(revision 83255)
@@ -62,5 +62,7 @@
 
     /** Returns whether cloud VM is accessible. */
-    bool isAccessible() const { return m_fAccessible; }
+    bool accessible() const { return m_fAccessible; }
+    /** Returns last access error message. */
+    QString accessError() const { return m_strAccessError; }
 
     /** Returns cloud VM state. */
@@ -97,5 +99,7 @@
 
     /** Holds whether cloud VM is accessible. */
-    bool  m_fAccessible;
+    bool     m_fAccessible;
+    /** Holds the last access error message. */
+    QString  m_strAccessError;
 
     /** Holds the cloud VM state. */
@@ -157,5 +161,7 @@
 
     /** Returns whether cloud VM is accessible. */
-    bool isAccessible() const { return d->isAccessible(); }
+    bool accessible() const { return d->accessible(); }
+    /** Returns last access error message. */
+    QString accessError() const { return d->accessError(); }
 
     /** Returns cloud VM state. */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.cpp	(revision 83254)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.cpp	(revision 83255)
@@ -85,4 +85,5 @@
 QMap<KVirtualSystemDescriptionType, QString> UICloudNetworkingStuff::getInstanceInfo(const CCloudClient &comCloudClient,
                                                                                      const QString &strId,
+                                                                                     QString &strErrorMessage,
                                                                                      QWidget *pParent /* = 0 */)
 {
@@ -100,7 +101,5 @@
             msgCenter().cannotCreateAppliance(comVBox, pParent);
         else
-        {
-            /// @todo fetch error info
-        }
+            strErrorMessage = UIErrorString::formatErrorInfo(comVBox);
     }
     else
@@ -113,7 +112,5 @@
                 msgCenter().cannotCreateVirtualSystemDescription(comAppliance, pParent);
             else
-            {
-                /// @todo fetch error info
-            }
+                strErrorMessage = UIErrorString::formatErrorInfo(comAppliance);
         }
         else
@@ -131,7 +128,5 @@
                     msgCenter().cannotAcquireCloudClientParameter(comCloudClient, pParent);
                 else
-                {
-                    /// @todo fetch error info
-                }
+                    strErrorMessage = UIErrorString::formatErrorInfo(comCloudClient);
             }
             else
@@ -149,7 +144,5 @@
                         msgCenter().cannotAcquireCloudClientParameter(comProgress, pParent);
                     else
-                    {
-                        /// @todo fetch error info
-                    }
+                        strErrorMessage = UIErrorString::formatErrorInfo(comProgress);
                 }
                 else
@@ -177,11 +170,13 @@
                                                 const CCloudClient &comCloudClient,
                                                 const QString &strId,
+                                                QString &strErrorMessage,
                                                 QWidget *pParent /* = 0 */)
 {
-    return getInstanceInfo(comCloudClient, strId, pParent).value(enmType, QString());
+    return getInstanceInfo(comCloudClient, strId, strErrorMessage, pParent).value(enmType, QString());
 }
 
 QMap<QString, QString> UICloudNetworkingStuff::getImageInfo(const CCloudClient &comCloudClient,
                                                             const QString &strId,
+                                                            QString &strErrorMessage,
                                                             QWidget *pParent /* = 0 */)
 {
@@ -197,7 +192,5 @@
             msgCenter().cannotAcquireCloudClientParameter(comCloudClient, pParent);
         else
-        {
-            /// @todo fetch error info
-        }
+            strErrorMessage = UIErrorString::formatErrorInfo(comCloudClient);
     }
     else
@@ -215,7 +208,5 @@
                 msgCenter().cannotAcquireCloudClientParameter(comProgress, pParent);
             else
-            {
-                /// @todo fetch error info
-            }
+                strErrorMessage = UIErrorString::formatErrorInfo(comProgress);
         }
         else
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.h	(revision 83254)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.h	(revision 83255)
@@ -34,7 +34,8 @@
 {
     /** Acquires instance list.
-      * @param  comCloudClient  Brings cloud client object.
-      * @param  pWidget         Brings parent widget to show messages according to,
-      *                         if no parent set, progress will be executed in blocking way. */
+      * @param  comCloudClient   Brings cloud client object.
+      * @param  strErrorMessage  Brings error message container.
+      * @param  pWidget          Brings parent widget to show messages according to,
+      *                          if no parent set, progress will be executed in blocking way. */
     SHARED_LIBRARY_STUFF QList<UICloudMachine> listInstances(const CCloudClient &comCloudClient,
                                                              QString &strErrorMessage,
@@ -42,28 +43,34 @@
 
     /** Acquires instance info as a map.
-      * @param  comCloudClient  Brings cloud client object.
-      * @param  strId           Brings cloud instance id.
-      * @param  pWidget         Brings parent widget to show messages according to,
-      *                         if no parent set, progress will be executed in blocking way. */
+      * @param  comCloudClient   Brings cloud client object.
+      * @param  strId            Brings cloud instance id.
+      * @param  strErrorMessage  Brings error message container.
+      * @param  pWidget          Brings parent widget to show messages according to,
+      *                          if no parent set, progress will be executed in blocking way. */
     SHARED_LIBRARY_STUFF QMap<KVirtualSystemDescriptionType, QString> getInstanceInfo(const CCloudClient &comCloudClient,
                                                                                       const QString &strId,
+                                                                                      QString &strErrorMessage,
                                                                                       QWidget *pParent = 0);
     /** Acquires instance info of certain @a enmType as a string.
-      * @param  comCloudClient  Brings cloud client object.
-      * @param  strId           Brings cloud instance id.
-      * @param  pWidget         Brings parent widget to show messages according to,
-      *                         if no parent set, progress will be executed in blocking way. */
+      * @param  comCloudClient   Brings cloud client object.
+      * @param  strId            Brings cloud instance id.
+      * @param  strErrorMessage  Brings error message container.
+      * @param  pWidget          Brings parent widget to show messages according to,
+      *                          if no parent set, progress will be executed in blocking way. */
     SHARED_LIBRARY_STUFF QString getInstanceInfo(KVirtualSystemDescriptionType enmType,
                                                  const CCloudClient &comCloudClient,
                                                  const QString &strId,
+                                                 QString &strErrorMessage,
                                                  QWidget *pParent = 0);
 
     /** Acquires image info as a map.
-      * @param  comCloudClient  Brings cloud client object.
-      * @param  strId           Brings cloud image id.
-      * @param  pWidget         Brings parent widget to show messages according to,
-      *                         if no parent set, progress will be executed in blocking way. */
+      * @param  comCloudClient   Brings cloud client object.
+      * @param  strId            Brings cloud image id.
+      * @param  strErrorMessage  Brings error message container.
+      * @param  pWidget          Brings parent widget to show messages according to,
+      *                          if no parent set, progress will be executed in blocking way. */
     SHARED_LIBRARY_STUFF QMap<QString, QString> getImageInfo(const CCloudClient &comCloudClient,
                                                              const QString &strId,
+                                                             QString &strErrorMessage,
                                                              QWidget *pParent = 0);
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDetailsGenerator.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDetailsGenerator.cpp	(revision 83254)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDetailsGenerator.cpp	(revision 83255)
@@ -131,5 +131,5 @@
         return table;
 
-    if (!guiCloudMachine.isAccessible())
+    if (!guiCloudMachine.accessible())
     {
         table << UITextTableLine(QApplication::translate("UIDetails", "Information Inaccessible", "details"), QString());
@@ -292,5 +292,5 @@
         return table;
 
-    if (!guiCloudMachine.isAccessible())
+    if (!guiCloudMachine.accessible())
     {
         table << UITextTableLine(QApplication::translate("UIDetails", "Information Inaccessible", "details"), QString());
@@ -571,5 +571,5 @@
         return table;
 
-    if (!guiCloudMachine.isAccessible())
+    if (!guiCloudMachine.accessible())
     {
         table << UITextTableLine(QApplication::translate("UIDetails", "Information Inaccessible", "details"), QString());
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h	(revision 83254)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h	(revision 83255)
@@ -156,13 +156,13 @@
       * @{ */
         /** Holds cached machine id. */
-        QString      m_strId;
+        QString  m_strId;
         /** Holds cached machine name. */
-        QString      m_strName;
+        QString  m_strName;
         /** Holds cached machine OS type id. */
-        QString      m_strOSTypeId;
+        QString  m_strOSTypeId;
         /** Holds cached machine OS type pixmap. */
-        QPixmap      m_pixmap;
+        QPixmap  m_pixmap;
         /** Holds cached machine OS type pixmap size. */
-        QSize        m_logicalPixmapSize;
+        QSize    m_logicalPixmapSize;
     /** @} */
 
@@ -170,9 +170,9 @@
       * @{ */
         /** Holds cached machine state. */
-        KMachineState             m_enmMachineState;
+        KMachineState  m_enmMachineState;
         /** Holds cached machine state name. */
-        QString                   m_strMachineStateName;
+        QString        m_strMachineStateName;
         /** Holds cached machine state name. */
-        QIcon                     m_machineStateIcon;
+        QIcon          m_machineStateIcon;
 
         /** Holds configuration access level. */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp	(revision 83254)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp	(revision 83255)
@@ -109,47 +109,43 @@
 
     /* Now determine whether VM is accessible: */
-    m_fAccessible = true;
-    if (m_fAccessible)
-    {
-        /* Reset last access error information: */
-        m_strAccessError.clear();
-
-        /* Determine own VM attributes: */
-        m_strOSTypeId = !m_guiCloudMachine.isNull()
-                      ? m_guiCloudMachine.osType()
-                      : "Other";
-
-        /* Determine VM states: */
-        m_enmMachineState = !m_guiCloudMachine.isNull()
-                          ? m_guiCloudMachine.machineState()
-                          : KMachineState_PoweredOff;
-        m_strMachineStateName = gpConverter->toString(m_enmMachineState);
-        if (itemType() == ItemType_CloudFake)
+    m_fAccessible = !m_guiCloudMachine.isNull()
+                  ? m_guiCloudMachine.accessible()
+                  : true;
+    m_strAccessError = !m_guiCloudMachine.isNull()
+                     ? m_guiCloudMachine.accessError()
+                     : QString();
+
+    /* Determine own VM attributes: */
+    m_strOSTypeId = !m_guiCloudMachine.isNull()
+                  ? m_guiCloudMachine.osType()
+                  : "Other";
+
+    /* Determine VM states: */
+    m_enmMachineState = !m_guiCloudMachine.isNull()
+                      ? m_guiCloudMachine.machineState()
+                      : KMachineState_PoweredOff;
+    m_strMachineStateName = gpConverter->toString(m_enmMachineState);
+    if (itemType() == ItemType_CloudFake)
+    {
+        switch (m_enmFakeCloudItemState)
         {
-            switch (m_enmFakeCloudItemState)
-            {
-                case UIVirtualMachineItemCloud::FakeCloudItemState_Loading:
-                    m_machineStateIcon = UIIconPool::iconSet(":/state_loading_16px.png");
-                    break;
-                case UIVirtualMachineItemCloud::FakeCloudItemState_Done:
-                    m_machineStateIcon = UIIconPool::iconSet(":/vm_new_16px.png");
-                    break;
-                default:
-                    break;
-            }
+            case UIVirtualMachineItemCloud::FakeCloudItemState_Loading:
+                m_machineStateIcon = UIIconPool::iconSet(":/state_loading_16px.png");
+                break;
+            case UIVirtualMachineItemCloud::FakeCloudItemState_Done:
+                m_machineStateIcon = UIIconPool::iconSet(":/vm_new_16px.png");
+                break;
+            default:
+                break;
         }
-        else
-            m_machineStateIcon = gpConverter->toIcon(m_enmMachineState);
-
-        /* Determine configuration access level: */
-        m_enmConfigurationAccessLevel = ConfigurationAccessLevel_Null;
-
-        /* Determine whether we should show this VM details: */
-        m_fHasDetails = true;
-    }
-    else
-    {
-        /// @todo handle inaccessible cloud VM
-    }
+    }
+    else
+        m_machineStateIcon = gpConverter->toIcon(m_enmMachineState);
+
+    /* Determine configuration access level: */
+    m_enmConfigurationAccessLevel = ConfigurationAccessLevel_Null;
+
+    /* Determine whether we should show this VM details: */
+    m_fHasDetails = true;
 
     /* Recache item pixmap: */
