I had a few minutes today to use StreetComplete. At the begining, only part of the map was shown. I restarted the app and all the map disappeared. I restarted the phone and still didn't have the map. While at the office now, I have the map visible. Is it a cache problem? Could it be related to the android update I did yesterday (from one lineageos nightly to the next)?

Same here. I use CM11 on Samsung Galaxy S3. I used the app about two weeks ago. I updated the app today (through F-Droid), then opened the app, there is no map.
No, it's related to the tileserver not giving out tiles. Nothing I can do about.
Works fine here… why should Mapzen not give out tiles?
Server problems, maintenance, stuff like that.
It happened for several people with different devices at the same time, that sounds like server problems to me. I'll close this. Feel free to post here again if it continues to happen.
Still having the same issue. Does it continue for the others?
Same for me sincères 2 days ;-(
What a pity.
Hmm, this is odd. So it is only affecting single users. Right now, I do not have any problem.
Could you have a look into your logfile whether there are any related errors? (Use i.e. the Android app SysLog or look at the log in Android Studio if you have it installed on your computer)
Maybe Geoblocking or so? Does Mapzen has such an ugly policy? (Or a broken DDOS protection or whatever, …)
This problem appears first for me the day after installing version 0.8.
So I came back to version 0.7 (few hours ago) and it worked again ...
Later on, I re-installed version 0.8, it was working again ... until yesterday evening.
Since, no map either using version 0.7 or 0.8
I just change my IP adress (using another Wifi) but I still don't see the map.
Try to install SysLog (but I'm really a newbie).
I don't have Android Studio installed but Android SDK and adb is installed. How can I debug the app? I'm a hybrid app developer so I never needed to debug a native app.
Me neither. I was just thinking you could have a look in the log to see whether there are any errors.
https://developer.android.com/studio/command-line/logcat.html
Also, what is the version of your Android installation?
To confirm if it is geoblocking, you can try to install the Erasermap (official Mapzen "example" app). Does the map display there?
There is more one could test, but this would all require a proper Android Studio setup.
Android 4.2.2
Oh oh, that sounds like a more likely cause. There were some problems with 4.4 and earlier in tangram-es which were solved for the latest version. But perhaps there is something else. Would you please download EraserMap and see if the map renders there?
EraserMap does not work too. My Android version is 4.4.4. It's CyanogenMod 11. Google Play Services are not installed.
Can't find EraserMap, do you have a link ?
Oh, those are the most current versions? This won't help then because they use an old version of tangram-es.
I fear I have to forward to the https://github.com/tangrams/tangram-es project. They'll be able to tell you what you can test to confirm where the problem is coming from.
Thanks for the link.
EraserMap does not work too.
Ah, now I read the OP's message again. So to summarize, we know so far:
Hey @grrgui where are you from :) You can also test whether mapzen tiles work for your location with https://tangrams.github.io/carousel/?tron#15.12917/40.7139/-73.9913. Though it should happen rarely that Amazon servers are down.. Mapzen is in the process to setup rate-limiting for cached tiles served by CDN so there could be an issue.
@egesu, @grrgui, @DamienCassou: do you get map tiles showing up at https://tangrams.github.io/carousel/?walkabout ? Can you try viewing it on your phone and on a computer? Do they work differently? Can you try going here to view a tile and see if it gives you any errors?
@westnordost: I swich back to version StreetComplete 0.7, no map :-(
@hjanetzek: what should I see, clicking on the link you sent? I see flashing lights on my phone, it crashes my computer (FF 53 on linux)
@grrgui ok that does at least indicates that you get tiles with another api_key.
The Tron styled map was probably no good example as it uses more advanced graphic effects which may be too heavy for some drivers.. The link @iandees gave should show a more regular map.
Edit: WebGL support on linux is usually better in chromium from my experience
@iandees: that link https://tangrams.github.io/carousel/?walkabout is ok on my computer: I see a clean map. On my phone (it is so slow) I see a map sometime... (or lights, or dots) but and it crash when I scroll.
For the second link, what should I see ?
on my computer: a menu (object ...) and a blank screen
on my phone: a string : {"objects": ...
I also don't know what the second link (https://tile.mapzen.com/mapzen/vector/v1/all/15/9647/12317.topojson?api_key=mapzen-8rMneof) is about. It actually shows me me a JSON:

{"objects":{"water":{"type":"GeometryCollection","geometries":[{"type":"Polygon","properties":{"source":"openstreetmapdata.com","kind":"ocean","name":"","area":1077324544,"sort_rank":200,"min_zoom":0.0,"id":10869},"arcs":[[999]]},{"t[…]
I think that's what it is supposed to show.
@rugk: same for me :-)
@grrgui @rugk thanks. This confirms that you're getting map data. (The JSON objects you're seeing are the converted OSM data)
Could you try clearing the StreetComplete app cache? Doing so should clear the tile cache and might flush out any bad tile data that ended up in your cache. This article is a fairly good guide on where to find the cache clean button.
@iandees: I cleaned StreetComplete 0.7 cache and data. Restarted my phone. Still no map.
All links work fine in my laptop (FF 54 on Linux) and my phone (FF on Android 4.4.4, very slow, crushed FF once).
First I cleaned the cache, restarted the app, it did not work. Then cleaned the data, restarted the app, still does not work.
@grrgui @rugk @egesu could you test this StreetComplete 0.8 build with latest tangram? http://city.informatik.uni-bremen.de/~jeff/app-debug.apk
I'll probably need to get some Android 4 devices.. Though it's weird that it worked sometimes with 0.7 and 0.8 and sometimes not. This would rather indicate a tiles problem.
@westnordost could you add an option to set the mapzen api_key so we can check whether it has to do with it? One can pass it programatically like this to mapView.getMapAsync(..., sceneUpdates)
```
ArrayList
sceneUpdates.add(new SceneUpdate("sources.mapzen.url_params.api_key", apiKey));
Nope, it does not work. Android 4.4.4
ok thanks - one last try for today build with another api_key: http://city.informatik.uni-bremen.de/~jeff/app-other_key.apk
No, it didn't work too. I can try if you want to test some other things. Also I have adb installed on my computer, can I debug it somehow?
@DamienCassou Sorry for an off-topic question, but how did you get that headphone icon in the status bar?

It seems you are using a quite recent Android version, but that icon there is strange to me. (Maybe a Custom ROM or app feature?)
Thank you @egesu! - I can reproduce the issue with the 4.4 emulator image. It seems to have to do with ssl certificate stuff Oo. Changing the url to use http fixes the map on the emulator.
http://city.informatik.uni-bremen.de/~jeff/app-no-https.apk
If that works the issue seems to be a combination of okhttp+javax and the mapzen ssl handling..
Failed url request https://tile.mapzen.com/mapzen/vector/v1/all/16/19295/24643.mvt?api_key=vector-tiles-tyHL4AY&
javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xb867c7c0: Failure in SSL library, usually a protocol error
error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version (external/openssl/ssl/s23_clnt.c:741 0x988f8990:0x00000000)
Yay it works now!
It works too ! :-)
Thanks a lot to all for your support.
Okay, but for bringing it into master please only disable HTTPS for these Android versions whee it does not work. All other versions should use HTTPS when possible.
@westnordost according to this answer it's really a bug in android <= 4.4. Not sure what the best solution is - Will look into that next week. http://stackoverflow.com/questions/29916962/javax-net-ssl-sslhandshakeexception-javax-net-ssl-sslprotocolexception-ssl-han/30302235#30302235
Running 4.4 on my S3 and hit that bug as well.
Does the app-no-https app affect only StreetComplete ? I can't find any description or details for this app.
@f6fvy app-no-https is StreetComplete 0.8 just with the tile url changed from https to http in app/assets/scene.yaml. You can build it yourself if you prefer :)
Thanks @hjanetzek I thought it was a different app. Works fine now.
@westnordost could you add an option to set the mapzen api_key so we can check whether it has to do with it? One can pass it programatically like this to mapView.getMapAsync(..., sceneUpdates)
@hjanetzek Did this now: https://github.com/westnordost/StreetComplete/commit/cf19fff2d0351cd8899a0c437c7e6a6ae89f3e01
Yes: it's indeed a known Android bug ! But afaik, it's not only for <4.4, I've read somewhere it also affects 7.0 for instance, but I'm not sure. I've hit this bug for my own app (MouseApp on github) and solved it by completely removing the HttpURLConnection stuff and rather used javascript (embedded in an hidden WebView) to handle SSL connections. But that's a lot of work, and I guess you don't wanna do that ;-)
So I think for your app, it's certainly better to just add a setting option to force http connections instead of https, but that's just a suggestion that would fit my needs ;-)
Thanks for the great app !
I made a bug report about this too, got removed because it was a duplicate. Nexus 6P, android 7.1.2
I'm having the same issue on two Android 7 devices. Nexus 5X and Samsung Galaxy Tab S3. Happy to provide any kind of log or debugging. It looks like I can access Mapzen tiles just fine from the above links.
Same here on Android 6.0.1
In logcat I found this:
Callback failure for call to https://tile.mapzen.com/...
05-10 09:02:27.275 20371 26316 D OkHttp : java.io.IOException: Unexpected response code: Response{protocol=http/1.1, code=403, message=Forbidden, url=https://tile.mapzen.com/mapzen/vector/v1/all/15/17350/11824.topojson?api_key=&?api_key=vector-tiles-fKUcuAJ}
05-10 09:02:27.275 20371 26316 D OkHttp : at com.mapzen.tangram.MapController$9.onResponse(MapController.java:1162)
05-10 09:02:27.275 20371 26316 D OkHttp : at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135)
05-10 09:02:27.275 20371 26316 D OkHttp : at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
05-10 09:02:27.275 20371 26316 D OkHttp : at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-10 09:02:27.275 20371 26316 D OkHttp : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-10 09:02:27.275 20371 26316 D OkHttp : at java.lang.Thread.run(Thread.java:818)
@NonnEmilia this looks like a new/different issue. The URL is being built incorrectly and includes a stray ?api_key=, which confuses the server.
It seems to work at the moment. This project was posted to Hacker News earlier today (that's how I found this project too, thank you for the work!). Maybe lots of people tried it at once and we went over an API limit with the API Key?
It's a different issue I think: the original issue posted in this thread can be detected by looking for the following error in the logcat:
unknown ssl handshake error
(well, I'm not sure it's the exact wordings, but it's very close)
I also have the issue on galaxy s3. StreetComplete 0.8 from f-droid, android 4.3
I see no network error in adb log.
the no https ADB works. Any ETA to get this fix in f-droid? thanks.
Any ETA
Note that it is mostly the same as for other software made as hobby "once author has enough free time not used on other hobbies"
okay. this is not critical software either.
Hello, I have no map under CM11 on a note2 phone :/
Upgraded from 0.8 To 0.10 via fdroid. No map 😕
Http / https setting or certificates management would be helpful
Hmm, not sure how to proceed here. I think as long as Mapzen offers their vector tiles through HTTP (as well), I will just make the app always request the tiles through HTTP instead of HTTPs
@westnordost it looks like multiple issues here.
1) Android < 4.4 should use http because it doesn't accept the SSL certificate that Mapzen uses for tiles.
2) In https://github.com/westnordost/StreetComplete/issues/175#issuecomment-300395882, it looks like the URL is being incorrectly built. There are duplicate ?api_key='s.
it seems to only affect older versions of Android (4.2, 4.4)
Nope. Just checked on Android 7.1.1 and same issue.
@9662 There were two issues affecting tile requests, which issue are you seeing on your Android 7.1.1 device? Can you share any errors from logcat?
which issue are you seeing on your Android 7.1.1 device?
As described above: map tiles fail to load at higher zoom levels. Speculation: quite possibly a tile server issue.
Can you share any errors from logcat?
Not at the moment, sorry.
Btw, has an OsmAnd plugin implementation been considered? That would sidestep nicely tile-loading problems, not to mention the bandwidth benefit. The current application is not really usable if one happens to be using data roaming.
@9662 It is usable, you just need to be able to roam :) OsmAnd tiles have that drawback that the maps are generated only once a month and the source currently used by StreetComplete has maps that are updated daily (up to few days).
OsmAnd tiles have that drawback that the maps are generated only once a month
OsmAnd has "OSM Live" feature which updates every day.
I still do no have maps with StreetComplete 0.10 (from Play Store) and Android 4.2.2, at all zoom levels.
OSM Live updates hourly, daily or weekly --- a user preference.
OsmAnd tiles have that drawback that the maps are generated only once a month
It has already been pointed out that users have the option to activate OSM Live. In addition, OsmAnd also supports tile servers, including user-defined arbitrary servers.
Lastly, some users may find it an acceptable trade-off to edit against a less current background map, compared to incurring potentially significant data/roaming charges, or not being able to update at all due to poor data coverage (tiles are comparatively bandwidth intensive in relation to "quests").
Just an idea though.
Maybe better open a new issue for that request.
Most helpful comment
Note that it is mostly the same as for other software made as hobby "once author has enough free time not used on other hobbies"