What is the bug? (in English)
Environment
- Lizmap Web Client version: 3.9.7
- QGIS Server: 3.34 (Py-QGIS-Server)
- PostgreSQL 15.17 / PostGIS 3.6
- Browser: tested on both Chrome 150.0.7871.188 and Firefox 153.0.1 — identical behavior on both (rules out a browser-specific JS engine issue)
Bug description
The Time Manager tool truncates the filter to date-only (no time component), even when the layer's attributeResolution is correctly set to minutes in the project .cfg. As a result, the generated filter becomes a strict equality on midnight (>= 'YYYY-MM-DD' AND <= 'YYYY-MM-DD'), which never matches any row whose timestamp isn't exactly midnight.
Minimal reproduction
- Create a simple PostgreSQL table with a
timestamp without time zone column and a few rows with distinct times (not midnight) on the same day, e.g.:
CREATE TABLE test_time_manager (
id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
geom geometry(Point, 2154),
"time" timestamp without time zone
);
-- insert 7 points with distinct non-midnight times on 2026-07-30
- Add the layer to a QGIS project, publish it via the Lizmap plugin (Time Manager tab): start attribute =
time, resolution = Minutes.
- Publish the project, open it in Lizmap Web Client, open the Time Manager panel, click Play.
Observed
The browser's network tab shows a GETFILTERTOKEN request with:
filter=test_time_manager: ( ( "time" >= '2026-07-30' ) AND ( "time" <= '2026-07-30' ) )
(date only, no time component), and the resulting GetMap request (using the returned FILTERTOKEN) returns an empty/near-empty PNG (~6-7 KB, no features rendered), even though the table clearly has rows for that day.
Expected
The filter should include the time component matching the configured resolution (minutes), e.g. something like:
( "time" >= '2026-07-30 14:00:00' ) AND ( "time" < '2026-07-30 14:15:00' )
Additional notes
- The project's
.cfg correctly stores "attributeResolution": "minutes" for the layer, confirmed by inspecting the file directly on the server.
- The
qgis_server role has confirmed SELECT rights on the table (ruled out as a permissions issue).
- The
GETFILTERTOKEN → token → GetMap with FILTERTOKEN chain works correctly end-to-end; only the filter's date granularity is wrong.
- We noticed CHANGELOG-3.9.md mentions a "JS - timemanager filter" fix in 3.9.7 (our current version), but the issue persists as described above — possibly a related but distinct issue, or the fix didn't fully address this specific truncation.
- Tested on two different layers (a production PostGIS table with generated columns, and this minimal reproduction table) with identical results, across two different browsers.
Steps to reproduce the issue
-
Create a simple PostgreSQL table with a timestamp without time zone column and a few rows with distinct times (not midnight) on the same day:
CREATE TABLE test_time_manager (
id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
geom geometry(Point, 2154),
"time" timestamp without time zone
);
-- insert several points with distinct non-midnight times on the same day
-
Add the layer to a QGIS project, publish it via the Lizmap plugin (Time Manager tab): start attribute = "time", resolution = "Minutes".
-
Publish the project, open it in Lizmap Web Client, open the Time Manager panel, click Play.
Expected: the Time Manager filters and displays features according to the configured minute resolution.
Observed: the GETFILTERTOKEN request truncates the filter to date-only (e.g. ( "time" >= '2026-07-30' ) AND ( "time" <= '2026-07-30' )), which matches nothing unless a row is exactly at midnight. The resulting GetMap (with FILTERTOKEN) returns an empty image.
Versions, safeguards, check summary etc
Versions :
- Lizmap Web Client : 3.9.7 - commit 800219e 800219e95
- Lizmap plugin : 4.5.9
- QGIS Desktop : 3.40.12
- QGIS Server : 3.44.9
- Py-QGIS-Server or QJazz : not used
- QGIS Server plugin lizmap_server : 2.14.1
List of Lizmap Web Client modules :
* Version Lizmap Web Client 3.8 needed
List of safeguards :
* Mode : normal
* Allow parent folder : no
* Prevent other drive : yes
* Prevent PG service : no
* Prevent PG Auth DB : yes
* Force PG user&pass : yes
* Prevent ECW : yes
Check Lizmap plugin
Operating system
windows 11
Browsers
Chrome
Browsers version
150.0.7871.188
Relevant log output
GETFILTERTOKEN filter: test_time_manager: ( ( "time" >= '2026-07-30' ) AND ( "time" <= '2026-07-30' ) )
Response: {"token":"fa8b6a5cfa97c51bded6bb3f96f80f83"}
Resulting GetMap (with FILTERTOKEN) response size: ~6-7 KB (empty PNG, no features rendered)
What is the bug? (in English)
Environment
Bug description
The Time Manager tool truncates the filter to date-only (no time component), even when the layer's
attributeResolutionis correctly set tominutesin the project.cfg. As a result, the generated filter becomes a strict equality on midnight (>= 'YYYY-MM-DD' AND <= 'YYYY-MM-DD'), which never matches any row whose timestamp isn't exactly midnight.Minimal reproduction
timestamp without time zonecolumn and a few rows with distinct times (not midnight) on the same day, e.g.:time, resolution =Minutes.Observed
The browser's network tab shows a
GETFILTERTOKENrequest with:(date only, no time component), and the resulting
GetMaprequest (using the returnedFILTERTOKEN) returns an empty/near-empty PNG (~6-7 KB, no features rendered), even though the table clearly has rows for that day.Expected
The filter should include the time component matching the configured resolution (minutes), e.g. something like:
Additional notes
.cfgcorrectly stores"attributeResolution": "minutes"for the layer, confirmed by inspecting the file directly on the server.qgis_serverrole has confirmedSELECTrights on the table (ruled out as a permissions issue).GETFILTERTOKEN→ token →GetMapwithFILTERTOKENchain works correctly end-to-end; only the filter's date granularity is wrong.Steps to reproduce the issue
Create a simple PostgreSQL table with a
timestamp without time zonecolumn and a few rows with distinct times (not midnight) on the same day:CREATE TABLE test_time_manager (
id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
geom geometry(Point, 2154),
"time" timestamp without time zone
);
-- insert several points with distinct non-midnight times on the same day
Add the layer to a QGIS project, publish it via the Lizmap plugin (Time Manager tab): start attribute = "time", resolution = "Minutes".
Publish the project, open it in Lizmap Web Client, open the Time Manager panel, click Play.
Expected: the Time Manager filters and displays features according to the configured minute resolution.
Observed: the GETFILTERTOKEN request truncates the filter to date-only (e.g. ( "time" >= '2026-07-30' ) AND ( "time" <= '2026-07-30' )), which matches nothing unless a row is exactly at midnight. The resulting GetMap (with FILTERTOKEN) returns an empty image.
Versions, safeguards, check summary etc
Versions :
List of Lizmap Web Client modules :
* Version Lizmap Web Client 3.8 needed
List of safeguards :
* Mode : normal
* Allow parent folder : no
* Prevent other drive : yes
* Prevent PG service : no
* Prevent PG Auth DB : yes
* Force PG user&pass : yes
* Prevent ECW : yes
Check Lizmap plugin
Operating system
windows 11
Browsers
Chrome
Browsers version
150.0.7871.188
Relevant log output