MerginMaps / qgis-plugin

QGIS plugin for managing Mergin Maps projects
GNU General Public License v3.0
32 stars 13 forks source link

Cannot download or sync certain projects. #566

Open Nathan-LloydBore opened 5 months ago

Nathan-LloydBore commented 5 months ago

It looks like a firewall in the DrayTek router we use has suddenly started blocking projects (possibly specifically ones with a WMS layer in). Cannot find any further details yet other than that these projects will not sync and cannot be downloaded through the plugin.

I can manually download the project through the web interface.

image

`Traceback (most recent call last):

File "C:\Users/Nathan/AppData/Roaming/QGIS/QGIS3\profiles\Nathan/python/plugins\Mergin\mergin\client.py", line 201, in _do_request return self.opener.open(request)

File "C:\PROGRA~1\QGIS32~1.0\apps\Python39\lib\urllib\request.py", line 523, in open response = meth(req, response)

File "C:\PROGRA~1\QGIS32~1.0\apps\Python39\lib\urllib\request.py", line 632, in http_response response = self.parent.error(

File "C:\PROGRA~1\QGIS32~1.0\apps\Python39\lib\urllib\request.py", line 561, in error return self._call_chain(*args)

File "C:\PROGRA~1\QGIS32~1.0\apps\Python39\lib\urllib\request.py", line 494, in _call_chain result = func(*args)

File "C:\PROGRA~1\QGIS32~1.0\apps\Python39\lib\urllib\request.py", line 641, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp)

urllib.error.HTTPError: HTTP Error 403: forbidden

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "C:\Users/Nathan/AppData/Roaming/QGIS/QGIS3\profiles\Nathan/python/plugins\Mergin\sync_dialog.py", line 129, in download_timer_tick is_running = download_project_is_running(self.job)

File "C:\Users/Nathan/AppData/Roaming/QGIS/QGIS3\profiles\Nathan/python/plugins\Mergin\mergin\client_pull.py", line 187, in download_project_is_running raise future.exception()

File "C:\PROGRA~1\QGIS32~1.0\apps\Python39\lib\concurrent\futures\thread.py", line 52, in run result = self.fn(*self.args, **self.kwargs)

File "C:\Users/Nathan/AppData/Roaming/QGIS/QGIS3\profiles\Nathan/python/plugins\Mergin\mergin\client_pull.py", line 92, in _do_download item.download_blocking(mc, mp, project_path)

File "C:\Users/Nathan/AppData/Roaming/QGIS/QGIS3\profiles\Nathan/python/plugins\Mergin\mergin\client_pull.py", line 299, in download_blocking resp = mc.get(

File "C:\Users/Nathan/AppData/Roaming/QGIS/QGIS3\profiles\Nathan/python/plugins\Mergin\mergin\client.py", line 216, in get return self._do_request(request)

File "C:\Users/Nathan/AppData/Roaming/QGIS/QGIS3\profiles\Nathan/python/plugins\Mergin\mergin\client.py", line 190, in wrapper return f(self, *args)

File "C:\Users/Nathan/AppData/Roaming/QGIS/QGIS3\profiles\Nathan/python/plugins\Mergin\mergin\client.py", line 206, in _do_request raise ClientError(e.read().decode("utf-8"))

Mergin.mergin.common.ClientError: Access Denied(URL Keywords) by URL content filter.[Powered by Draytek]


The requested Web page has been blocked by URL Content Filter.

Please contact your system administrator for further information.


[Powered by Draytek]

`

wonder-sk commented 5 months ago

Not sure if there's anything we can do on our side - I would suggest to whitelist app.merginmaps.com in your firewall to disable content filtering, or disable the content filtering altogether. It may be a good idea to ping Draytek to see what URL keywords are there in their filter... I wonder though how can the router inspect encrypted HTTPS traffic - or are you running on premises Community/Enterprise edition?

Nathan-LloydBore commented 5 months ago

We have disabled the content filtering and created a project without any externally streaming data layers and are getting the same results. The server is a CE server hosted on Microsoft Azure. I am trying to get to the bottom of what the block is but we haven't changed anything ourselves on that front recently to trigger this.