vimeo / vimeo/vimeo-networking-java

As of 10AM Stopped Working Completely - Vimeo changed JSON response?

Open
#540 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Kotlin
Stars
128
Forks
48
PR merge metrics
No merged PRs in 30d

Description

As of 10AM this morning it looks like Vimeo changed something in the way the VideoFile.createdTime JSON is returned which now vimeo-networking-java cannot parse, and it crashes.

This is not an issue with my app, as my published app which hasn't been touched in about a month all of a sudden was inundated with crashes stemming from people trying to watch videos. There seems to be no way to make any calls to the API which work.

I also want to point out that whatever change was made has not affected iOS its just Android.

Example:

private VimeoClient mApiClient;

...

// this returns that it succeeds, as you can see by the log its status is 200, but it fails to parse the json

mApiClient.fetchNetworkContent(uriString, new ModelCallback(VideoList.class) {
@Override
public void success(VideoList videoList) {
// videoList now always returns null
}

Log:

I/System.out: --------- RESPONSE ---------
I/System.out: ENDPOINT: /channels/1737292/videos
I/System.out: STATUS CODE: 200
I/System.out: REQUEST TIME: 784.3ms
I/System.out: --------- RESPONSE END ---------
I/System.out: Error when deserializing object!
W/System.err: com.google.gson.JsonSyntaxException: java.io.IOException: Error parsing VideoFile.createdTime JSON!
W/System.err: at com.google.gson.Gson.fromJson(Gson.java:947)
W/System.err: at com.google.gson.Gson.fromJson(Gson.java:897)
W/System.err: at com.google.gson.Gson.fromJson(Gson.java:846)
W/System.err: at com.google.gson.Gson.fromJson(Gson.java:817)
W/System.err: at com.vimeo.networking.GsonDeserializer.deserializeObject(GsonDeserializer.java:66)
W/System.err: at com.vimeo.networking.GsonDeserializer.deserialize(GsonDeserializer.java:58)
W/System.err: at com.vimeo.networking.VimeoClient$5.success(VimeoClient.java:1169)
W/System.err: at com.vimeo.networking.callbacks.VimeoCallback.onResponse(VimeoCallback.java:55)
W/System.err: at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
W/System.err: at android.os.Handler.handleCallback(Handler.java:938)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err: at android.os.Looper.loop(Looper.java:233)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:8063)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)
W/System.err: Caused by: java.io.IOException: Error parsing VideoFile.createdTime JSON!
W/System.err: at com.vimeo.stag.generated.ParseUtils.parseVideoFile(ParseUtils.java:868)
W/System.err: at com.vimeo.stag.generated.Stag$VideoFileAdapter.read(Stag.java:411)
W/System.err: at com.vimeo.stag.generated.Stag$VideoFileAdapter.read(Stag.java:397)
W/System.err: at com.vimeo.stag.generated.Stag.readListFromAdapter(Stag.java:85)
W/System.err: at com.vimeo.stag.generated.ParseUtils.parseArray(ParseUtils.java:67)
W/System.err: at com.vimeo.stag.generated.ParseUtils.parseVideo(ParseUtils.java:1886)
W/System.err: at com.vimeo.stag.generated.Stag$VideoAdapter.read(Stag.java:321)
W/System.err: at com.vimeo.stag.generated.Stag$VideoAdapter.read(Stag.java:307)
W/System.err: at com.vimeo.stag.generated.Stag.readListFromAdapter(Stag.java:85)
W/System.err: at com.vimeo.stag.generated.ParseUtils.parseArray(ParseUtils.java:67)
W/System.err: at com.vimeo.stag.generated.ParseUtils.parseVideoList(ParseUtils.java:4842)
W/System.err: at com.vimeo.stag.generated.Stag$VideoListAdapter.read(Stag.java:123)
W/System.err: at com.vimeo.stag.generated.Stag$VideoListAdapter.read(Stag.java:109)
W/System.err: at com.google.gson.Gson.fromJson(Gson.java:932)
W/System.err: ... 15 more

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in com.vimeo.stag.generated.ParseUtils.parseVideoFile and inspect how VideoFile.createdTime is parsed, then compare that expectation with the Vimeo response from /channels/1737292/videos. Reproduce the VideoList deserialization failure and verify that the response parses without the reported exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java, kotlin
Domain
api, mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.