diff --git a/src/plugins/imageformats/dds/qddshandler.cpp b/src/plugins/imageformats/dds/qddshandler.cpp
index 428659fd35ae2d04ff216c282ae33a88a800d18c..c85e75d2fe957e2bd51c100a039053b6ee82a8ec 100644
--- a/src/plugins/imageformats/dds/qddshandler.cpp
+++ b/src/plugins/imageformats/dds/qddshandler.cpp
@@ -1238,10 +1238,14 @@ QByteArray QDDSHandler::name() const
 
 bool QDDSHandler::canRead() const
 {
-    if (canRead(device())) {
+    if (m_scanState == ScanNotScanned && !canRead(device()))
+        return false;
+
+    if (m_scanState != ScanError) {
         setFormat(QByteArrayLiteral("dds"));
         return true;
     }
+
     return false;
 }