I am having a problem in QGIS with some layers failing to display on the map canvas. I am trying to learn about QGIS by working through the Training Manual found on docs.qgis.org. I am running version 3.16.1 under Linux Mint 19.3. I installed the Flatpak version of QGIS using the Linux Mint software manager. Several months ago I downloaded the training data that goes with the manual and worked on some of the exercises, and it all seemed to work well. But recently when I looked at the project the layer that was imported from a SpatiaLite database, called landuse, no longer displays on the canvas even though the layer is check-marked in the layers list. When I look at the attribute table for this layer and select Zoom to Feature on a record it zooms in but does not display the feature. When I select Flash Feature it does flash. Another layer, called roads, which is from a Geopackage database, also will no longer display on the canvas. Other layers which were imported as shapefiles are displayed. I tried downloading the training data again and connected the SpatiaLite and Geopackage files under new names. I imported the layers into a new project but the landuse layer (SpatiaLite) still does not display. The roads layer (Geopackage) does display but if I zoom in it disappears and will re-appear if I go to full zoom. Does anyone have any ideas to fix this?

4 Answers 4


I have this same exact issue. I just downloaded QGIS and training data today, same system configurations (linux, flatpack, etc).

Update I just got the spatialite data to render. It seemed QGIS wasn't mapping the geometry field correctly. I have not figured out how to correct the GeoPackage data.

  • Right click on layer
  • Select Update SQL
  • On the bottom right, map the geometry field

Second update: I re-extracted the data, and then the GeoPackage data rendered correctly. I have no idea why this would change the rendering result, but yet it did.

  • Thank you very much, that worked for the SpatiaLite layer! The Geopackage layer (roads) will display if I zoom out enough that the entire layer is within the map area. If I zoom in or pan so that any piece is outside the map area it all disappears.
    – Paul Lloyd
    Commented Dec 20, 2020 at 2:19

It can be hard to debug these sorts of issues for an experienced user, even more so to someone new to GIS.

You have already tried re-importing the data as a new layer. That is a good thing to have checked first.

Other things I would try:

  1. verify the layer CRS is correct

  2. verify the layer is not covered on top by another layer blocking it (as a quick test, try unchecking all other layers)

  3. verify you don't have scale-based rendering on for the layer, with rendering turned off at the scales you are using

  4. in the layer symbology, temporarily add (with the + icon at right) an extremely plain vanilla additional symbol layer of whatever garish colour symbol/line/polygon fill strikes your fancy. The purpose is to make sure your current symbology (which by the way could be being imported as a default style from the database storing the data, if you munged something up) doesn't have some crazy conditionals or data-driven settings that you're not noticing but are hiding it in your instance. (I once spent a frustrating hour debugging a disappearing layer, where it turned out I had turned on data-driven colouring with an expression based on another field I had unwittingly renamed.)

  • Thank you for your suggestions. Everything looks good for points 1, 2, and 3. Regarding point 4, adding another symbol layer did not help. If all else fails, would it be worth trying to uninstall QGIS and re-install it? I could then rebuild things on a "clean slate".
    – Paul Lloyd
    Commented Dec 15, 2020 at 0:42

I think you have different installation of QGIS. Flatpack version has a problem.

Warning 6: driver SQLite does not support creation option SPATIALITE
ERROR 6: OGR was built without libspatialite support
... sorry, creating/writing any SpatiaLite DB is unsupported

In case anyone comes across this problem, and is searching for a different answer, ensure your X and Y data you're passing to SpatiaLite is actually enter as Real or Integer.

df_points.to_sql('db_points',con,if_exists='replace',index=False, dtype={'line_station': 'INTEGER',"Line": 'INTEGER', "Station": 'INTEGER', "X": 'REAL', "Y": 'REAL', "Elevation": 'REAL'})

Hope that saves someone some hair.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.