The original version of this document is located at https://docs.qfield.org/get-started/tutorials/tips-tricks-qfc
This page provides an overview of tips and tricks for your project and workflow to minimize synchronization errors, work efficiently, and save storage.
Follow these recommendations to ensure a smooth synchronization process between QGIS, QField, and QFieldCloud.
Before uploading your project, ensure all relevant data sources (GeoPackages, rasters, etc.) are located in the same directory as your project file (.qgs/.qgz) or in a subdirectory (e.g., ./data, ./assets).
If files are spread across different drives or folders on your computer, QFieldSync and QFieldCloud may fail to package them correctly for the mobile device.
When multiple users collect data offline simultaneously, standard auto-incrementing IDs (1, 2, 3…) result in conflict errors when applying delta changes on QFieldCloud.
survey_uuid) and use uuid() or uuid('WithoutBraces') as the default value.fid (Feature ID): When working with GeoPackages, reduce conflicts on the internal fid integer column by setting the Default Value to the expression epoch(now()).Tip
To set this up, navigate to Layer Properties > Attributes Form, select the fid field, and set Default Value to epoch(now()).
Ensure Apply default value on update is unchecked so the ID remains constant after creation.
Absolute paths (e.g., C:\Users\{username}\Downloads\photo_001.jpg) break when transferring the project to a mobile device (Android/iOS) because the file system structure differs.
Workflow
When writing expressions (such as inside aggregate() or relation_aggregate() functions), QGIS allows you to reference layers by internal ID (e.g., places_2348274...) or Layer Name (e.g., Places).
Always use the Layer Name (e.g., 'Places').
The internal Layer ID changes if you remove and re-add a layer, or when QFieldCloud triggers a packaging job.
The Layer Name remains stable as long as you do not rename it in the layer tree.
QField and QFieldCloud are optimized for the GeoPackage (.gpkg) format.
While QField and QFieldCloud support other formats like Shapefiles (.shp), GeoJSON, and KML, we strongly recommend converting these layers to GeoPackage before starting your project.
Workflow
notes_points.gpkg).notes_points).QFieldCloud manages versions and backups at the file level.
Every time changes synchronize, QFieldCloud creates a backup of the modified file.
survey_data.gpkg containing Trees, Roads, and Buildings) means restoring a backup to fix an error in one layer rolls back valid work done in other layers.trees.gpkg, roads.gpkg).If you experience synchronization issues, check for these common configuration errors:
| Issue | Cause | Solution |
|---|---|---|
| Missing Images | Paths are set to “Absolute” | Navigate to Project > Properties… > General and set paths to Relative. |
| Sync Failures | Data is outside the project folder | Move all .gpkg and raster files into the same folder as the project file (.qgz/.qgs). |
| Expression Errors | Layer ID used in expression | Update expressions to use 'Layer Name' instead of 'Layer_ID_123'. |
| Duplicate Keys | Using default 1, 2, 3 IDs | Implement uuid() or epoch(now()) for unique identification. |
In QFieldCloud settings, configure attachments to download on demand.
This feature is useful when working with many photos without needing all attachments locally.
Workflow

Note
You can activate this feature during project creation or enable it for existing projects.
You must be online to download attachments on demand.
Offline viewing displays a blank screen for un-downloaded attachments.
When making frequent field changes with attachments, synchronize to the cloud as often as possible to prevent data loss.
Enforce automatic pushing of pending changes from QField devices in the field and specify the automated push interval.
Configure this remote functionality in the project settings.
🖥️ Desktop preparation
Workflow

📱 Fieldwork
Workflow

Note
Restrict QGIS project files in field operations to prevent users with editor rights from modifying project configurations.
Project administrators can restrict access to these files in QFieldCloud.
Workflow
🖥️ Desktop preparation

When enabled, only users with Admin or Manager roles can modify or upload the following files:
my_project.qgz)my_project_attachments.zip)my_project.qgd).qml) sharing the same name as the project fileReduce the number of stored file versions to free up account storage space.
Manually delete file versions from the project Files section.
Each file version links to the user who uploaded it.
Workflow

n version(s) older than the selected version to remove all older versions.

Reduce image attachment pixel sizes to save storage space.
This reduces image quality while using less QFieldCloud storage.
Refer to the Attachment Widget documentation for step-by-step instructions.
Use the QFieldCloud SDK to automate attachment deletion and free up storage space without manual web interface tasks.
Set up a script or scheduled task using the QFieldCloud SDK to periodically purge specific file types (such as .jpg or .mp4).
For complete details and code snippets, see the QFieldCloud SDK Documentation.
Delete unnecessary files using glob patterns to free up storage quota on QFieldCloud:
=== “:material-language-python: Python”
```python
client.delete_files(
project_id="123e4567-e89b-12d3-a456-426614174000",
glob_patterns=["*.csv", "*.jpg"],
throw_on_error=True
)
```
=== “:material-bash: Bash”
```bash
qfieldcloud-cli delete-files '123e4567-e89b-12d3-a456-426614174000' '*.jpg'
```
=== “:material-powershell: PowerShell”
```powershell
qfieldcloud-cli delete-files "123e4567-e89b-12d3-a456-426614174000" "*.jpg"
```