<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:#1F4E79;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F4E79">Dear list,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">this week we upgraded to MapProxy 1.8.1 and it seems there is a bug when calling a WMTS with KVP. An internal error appears as response and the error log shows following:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">Traceback (most recent call last):<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">   File "/opt/dev/mapproxy/local/lib/python2.7/site-packages/mapproxy/wsgiapp.py", line 189, in __call__<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">    resp = self.handlers[handler_name].handle(req)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">   File "/opt/dev/mapproxy/local/lib/python2.7/site-packages/mapproxy/service/ows.py", line 38, in handle<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">     return self.services[service].handle(req)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">   File "/opt/dev/mapproxy/local/lib/python2.7/site-packages/mapproxy/service/base.py", line 30, in handle<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">     return handler(parsed_req)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">   File "/opt/dev/mapproxy/local/lib/python2.7/site-packages/mapproxy/service/wmts.py", line 92, in tile<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">     tile = tile_layer.render(request, coverage=limited_to, decorate_img=decorate_img)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">   File "/opt/dev/mapproxy/local/lib/python2.7/site-packages/mapproxy/service/tile.py", line 308, in render<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">     dimensions=dimensions, with_metadata=True)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">   File "/opt/dev/mapproxy/local/lib/python2.7/site-packages/mapproxy/cache/tile.py", line 101, in load_tile_coord<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">     self.cache.load_tile(tile, with_metadata)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">   File "/opt/dev/mapproxy/local/lib/python2.7/site-packages/mapproxy/cache/mbtiles.py", line 314, in load_tile<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">     return self._get_level(tile.coord[2]).load_tile(tile, with_metadata=with_metadata)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">   File "/opt/dev/mapproxy/local/lib/python2.7/site-packages/mapproxy/cache/mbtiles.py", line 168, in load_tile<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">     zoom_level = ?''', tile.coord)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">OperationalError: no such table: tiles<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">I’m pretty sure it worked with MapProxy 1.8.0. The same parameters with the RESTfull WMTS are working with the 1.8.1 version. Here are some example parameters:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">KVP: mapproxy/webatlasde/service?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&layer=webatlasde&style=default&tilematrixset=DE_EPSG_25832_ADV&tilematrix=00&tilerow=0&tilecol=0&format=png<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">REST: mapproxy/webatlasde/wmts/tile/1.0.0/webatlasde/default/DE_EPSG_25832_ADV/00/0/0.png<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">We’re using a SQLite-DB as Cache. Maybe it’s connected to that because when using an intermediate cache with disable_storage: true (like in the reprojecting tiles/cache example) it’s working and
 the response contains the requested tile. Is this a (known) bug or did I miss something?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">So far as a workaround we set up a mod_rewrite rule to forward the KVP requests to REST.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">Kind regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F4E79">Dirk</span><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#595959;mso-fareast-language:DE"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>