Interesting. I was able to reproduce the problem, which gave the following output in the wms
tab of the logger:
2020-12-09T15:15:33 WARNING Tile request error (Status: 200; Content-Type: text/html;charset=utf-8; Length: 1580; URL: http://tiles.arcgis.com/tiles/qHLhLQrcvEnxjtPr/arcgis/rest/services/OS_Open_Carto_2/MapServer/WMTS/tile/1.0.0/OS_Open_Carto_2/default/default028mm/8/28/38.png)
2020-12-09T15:15:33 WARNING Tile request error (Status: 200; Content-Type: text/html;charset=utf-8; Length: 1580; URL: http://tiles.arcgis.com/tiles/qHLhLQrcvEnxjtPr/arcgis/rest/services/OS_Open_Carto_2/MapServer/WMTS/tile/1.0.0/OS_Open_Carto_2/default/default028mm/8/29/38.png)
2020-12-09T15:15:33 WARNING Tile request error (Status: 200; Content-Type: text/html;charset=utf-8; Length: 1580; URL: http://tiles.arcgis.com/tiles/qHLhLQrcvEnxjtPr/arcgis/rest/services/OS_Open_Carto_2/MapServer/WMTS/tile/1.0.0/OS_Open_Carto_2/default/default028mm/8/30/38.png)
2020-12-09T15:15:33 WARNING Tile request error (Status: 200; Content-Type: text/html;charset=utf-8; Length: 1580; URL: http://tiles.arcgis.com/tiles/qHLhLQrcvEnxjtPr/arcgis/rest/services/OS_Open_Carto_2/MapServer/WMTS/tile/1.0.0/OS_Open_Carto_2/default/default028mm/8/30/42.png)
2020-12-09T15:15:33 WARNING Tile request error (Status: 200; Content-Type: text/html;charset=utf-8; Length: 1580; URL: http://tiles.arcgis.com/tiles/qHLhLQrcvEnxjtPr/arcgis/rest/services/OS_Open_Carto_2/MapServer/WMTS/tile/1.0.0/OS_Open_Carto_2/default/default028mm/8/29/40.png)
However, any of the urls link to a valid png image on the web.
Luckily, there are multiple ways of displaying ArcGIS rest maps in QGIS:
1. as a WMTS
this is what we tried.
2. As an ArcGIS MapService (thread)
this worked.
Layer
-> Add Layer
-> Add ArcGIS Map Service Layer
...
- click
new
- Give a descriptive name and paste the URL. It should end on
/MapServer
so: https://tiles.arcgis.com/tiles/qHLhLQrcvEnxjtPr/arcgis/rest/services/OS_Open_Carto_2/MapServer
OK
-> Add
- done
3. As described in this wiki.
Using this method, you Should be able to get vector layers from Rest API as well.
I could not get it working with the Open Carto Map (and have not tried it with others).