diff --git a/src/server/qgshostedrdsbuilder.cpp b/src/server/qgshostedrdsbuilder.cpp index 23b9c3a4cb8..86e5517d631 100644 --- a/src/server/qgshostedrdsbuilder.cpp +++ b/src/server/qgshostedrdsbuilder.cpp @@ -61,7 +61,7 @@ QgsMapLayer* QgsHostedRDSBuilder::createMapLayer( const QDomElement& elem, { rl = qobject_cast( QgsMSLayerCache::instance()->searchLayer( uri, layerName ) ); } - if ( !rl ) + if ( !rl || !rl->isValid() ) { QgsDebugMsg( "hostedrds layer not in cache, so create and insert it" ); rl = new QgsRasterLayer( uri, layerNameFromUri( uri ) ); diff --git a/src/server/qgsserverprojectparser.cpp b/src/server/qgsserverprojectparser.cpp index d86a7a0c7fe..faabfdbf184 100644 --- a/src/server/qgsserverprojectparser.cpp +++ b/src/server/qgsserverprojectparser.cpp @@ -280,6 +280,10 @@ QgsMapLayer* QgsServerProjectParser::createLayerFromElement( const QDomElement& layer->readLayerXml( const_cast( elem ) ); //should be changed to const in QgsMapLayer //layer->setLayerName( layerName( elem ) ); + if ( !layer->isValid() ) + { + return nullptr; + } // Insert layer in registry and cache before addValueRelationLayersForLayer if ( !QgsMapLayerRegistry::instance()->mapLayer( id ) ) QgsMapLayerRegistry::instance()->addMapLayer( layer, false, false );