Glide: Failed to load facebook graph api profile picture URL

Created on 27 Mar 2018  Â·  9Comments  Â·  Source: bumptech/glide

Hello,
since today, all graph api URL from facebook can't be loaded with Gradle version 4.6.1.

implementation 'com.github.bumptech.glide:glide:4.6.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'

Yesterday all was going well but seems that today something has changed in Facebook Backend.

I have tried it with Picasso and 504 error was thrown.

I can reproduce this error in all of my smarthphones (OnePlus 5T Oreo8.1, Samsung Note 4 6.0.1, Galaxy Tab...)

My Gradle call:

Glide.with(mContext).load(ImageUtils.getCDNUrl(mProfile.getUserPic(), 480, 85)).listener(new RequestListener<Drawable>() {

            @Override
            public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                imageLoader.setVisibility(android.view.View.GONE);
                return false;
            }

            @Override
            public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                imageLoader.setVisibility(android.view.View.GONE);
                return false;
            }
        }).apply(new RequestOptions().fitCenter().error(R.drawable.img_user_no_picture)).into(profileImageView);

ImageUtils.getCDNUrl(mProfile.getUserPic(), 480, 85) -> gives an url like: https://graph.facebook.com/1131031506918961/picture?width=480&height=480

I have lots of others types of calls to this graph url and all was failing.

Stack trace / LogCat:

03-27 14:19:41.560 7991-7991/com.twilala W/Glide: Load failed for https://graph.facebook.com/1131031506918961/picture?width=90&height=90 with size [220x220]
    class com.bumptech.glide.load.engine.GlideException: Failed to load resource
    There were 7 causes:
    java.io.IOException(File unsuitable for memory mapping)
    java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA)
    java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA)
    java.io.IOException(File unsuitable for memory mapping)
    java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA)
    java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA)
    java.io.FileNotFoundException(No content provider: https://graph.facebook.com/1696341717099429/picture?width=90&height=90)
     call GlideException#logRootCauses(String) for more detail
      Cause (1 of 7): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.nio.ByteBuffer, DATA_DISK_CACHE, https://graph.facebook.com/1131031506918961/picture?width=90&height=90
    There was 1 cause:
    java.io.IOException(File unsuitable for memory mapping)
     call GlideException#logRootCauses(String) for more detail
        Cause (1 of 1): class java.io.IOException: File unsuitable for memory mapping
      Cause (2 of 7): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{FileInputStream->Object->Drawable}, DATA_DISK_CACHE, https://graph.facebook.com/1696341717099429/picture?width=90&height=90
        Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->GifDrawable->Drawable}
        Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->Bitmap->Drawable}
        Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->BitmapDrawable->Drawable}
      Cause (3 of 7): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{ParcelFileDescriptor->Object->Drawable}, DATA_DISK_CACHE, https://graph.facebook.com/1696341717099429/picture?width=90&height=90
    There were 2 causes:
    java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA)
    java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA)
     call GlideException#logRootCauses(String) for more detail
        Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->Bitmap->Drawable}
    There was 1 cause:
    java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA)
     call GlideException#logRootCauses(String) for more detail
          Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
        Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->BitmapDrawable->Drawable}
    There was 1 cause:
    java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA)
     call GlideException#logRootCauses(String) for more detail
          Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
      Cause (4 of 7): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.nio.ByteBuffer, REMOTE, https://graph.facebook.com/1131031506918961/picture?width=90&height=90
    There was 1 cause:
    java.io.IOException(File unsuitable for memory mapping)
     call GlideException#logRootCauses(String) for more detail
        Cause (1 of 1): class java.io.IOException: File unsuitable for memory mapping
      Cause (5 of 7): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{FileInputStream->Object->Drawable}, REMOTE, https://graph.facebook.com/1696341717099429/picture?width=90&height=90
        Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->GifDrawable->Drawable}
        Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream-
03-27 14:19:41.560 7991-7991/com.twilala I/Glide: Root cause (1 of 7)
    java.io.IOException: File unsuitable for memory mapping
        at com.bumptech.glide.util.ByteBufferUtil.fromFile(ByteBufferUtil.java:40)
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:65)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:266)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at java.lang.Thread.run(Thread.java:818)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)
03-27 14:19:41.570 7991-7991/com.twilala I/Glide: Root cause (2 of 7)
    java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder.decode(VideoDecoder.java:160)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:72)
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:55)
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:45)
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:58)
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:43)
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:498)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:469)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:455)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:407)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95)
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:415)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95)
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:394)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onLoadFailed(DataCacheGenerator.java:100)
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:70)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:266)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at java.lang.Thread.run(Thread.java:818)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)
     Caused by: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
        at android.media.MediaMetadataRetriever.setDataSource(Native Method)
        at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:155)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder$ParcelFileDescriptorInitializer.initialize(VideoDecoder.java:219)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder$ParcelFileDescriptorInitializer.initialize(VideoDecoder.java:214)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder.decode(VideoDecoder.java:155)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:72) 
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:55) 
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:45) 
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:58) 
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:43) 
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:498) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:469) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:455) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:407) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95) 
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:415) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95) 
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:394) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onLoadFailed(DataCacheGenerator.java:100) 
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:70) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:266) 
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
        at java.lang.Thread.run(Thread.java:818) 
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446) 
    Root cause (3 of 7)
    java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder.decode(VideoDecoder.java:160)
        at com.bumptech.glide.load.resource.bitmap.BitmapDrawableDecoder.decode(BitmapDrawableDecoder.java:58)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:72)
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:55)
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:45)
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:58)
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:43)
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:498)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:469)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:455)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:407)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95)
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:415)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95)
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:394)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onLoadFailed(DataCacheGenerator.java:100)
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:70)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:266)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at java.lang.Thread.run(Thread.java:818)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)
     Caused by: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
        at android.media.MediaMetadataRetriever.setDataSource(Native Method)
        at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:155)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder$ParcelFileDescriptorInitializer.initialize(VideoDecoder.java:219)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder$ParcelFileDescriptorInitializer.initialize(VideoDecoder.java:214)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder.decode(VideoDecoder.java:155)
        at com.bumptech.glide.load.resource.bitmap.BitmapDrawableDecoder.decode(BitmapDrawableDecoder.java:58) 
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:72) 
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:55) 
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:45) 
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:58) 
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:43) 
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:498) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:469) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:455) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:407) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95) 
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:415) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95) 
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:394) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onLoadFailed(DataCacheGenerator.java:100) 
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:70) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:266) 
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
        at java.lang.Thread.run(Thread.java:818) 
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446) 
    Root cause (4 of 7)
    java.io.IOException: File unsuitable for memory mapping
        at com.bumptech.glide.util.ByteBufferUtil.fromFile(ByteBufferUtil.java:40)
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:65)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:269)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at java.lang.Thread.run(Thread.java:818)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)
    Root cause (5 of 7)
    java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder.decode(VideoDecoder.java:160)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:72)
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:55)
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:45)
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:58)
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:43)
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:498)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:469)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:455)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:407)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherReady(SourceGenerator.java:135)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95)
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:415)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherReady(SourceGenerator.java:135)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95)
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:394)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherFailed(SourceGenerator.java:141)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onLoadFailed(DataCacheGenerator.java:100)
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:70)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:269)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at java.lang.Thread.run(Thread.java:818)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)
     Caused by: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
        at android.media.MediaMetadataRetriever.setDataSource(Native Method)
        at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:155)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder$ParcelFileDescriptorInitializer.initialize(VideoDecoder.java:219)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder$ParcelFileDescriptorInitializer.initialize(VideoDecoder.java:214)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder.decode(VideoDecoder.java:155)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:72) 
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:55) 
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:45) 
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:58) 
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:43) 
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:498) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:469) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:455) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:407) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376) 
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherReady(SourceGenerator.java:135) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95) 
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:415) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376) 
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherReady(SourceGenerator.java:135) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95) 
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:394) 
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherFailed(SourceGenerator.java:141) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onLoadFailed(DataCacheGenerator.java:100) 
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:70) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:269) 
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
        at java.lang.Thread.run(Thread.java:818) 
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446) 
    Root cause (6 of 7)
    java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder.decode(VideoDecoder.java:160)
        at com.bumptech.glide.load.resource.bitmap.BitmapDrawableDecoder.decode(BitmapDrawableDecoder.java:58)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:72)
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:55)
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:45)
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:58)
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:43)
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:498)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:469)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:455)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:407)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherReady(SourceGenerator.java:135)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95)
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:415)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherReady(SourceGenerator.java:135)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95)
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:394)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherFailed(SourceGenerator.java:141)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onLoadFailed(DataCacheGenerator.java:100)
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:70)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:269)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at java.lang.Thread.run(Thread.java:818)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)
     Caused by: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
        at android.media.MediaMetadataRetriever.setDataSource(Native Method)
        at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:155)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder$ParcelFileDescriptorInitializer.initialize(VideoDecoder.java:219)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder$ParcelFileDescriptorInitializer.initialize(VideoDecoder.java:214)
        at com.bumptech.glide.load.resource.bitmap.VideoDecoder.decode(VideoDecoder.java:155)
        at com.bumptech.glide.load.resource.bitmap.BitmapDrawableDecoder.decode(BitmapDrawableDecoder.java:58) 
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:72) 
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:55) 
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:45) 
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:58) 
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:43) 
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:498) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:469) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:455) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:407) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376) 
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherReady(SourceGenerator.java:135) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95) 
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:415) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376) 
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherReady(SourceGenerator.java:135) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95) 
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:394) 
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherFailed(SourceGenerator.java:141) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.onLoadFailed(DataCacheGenerator.java:100) 
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:70) 
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75) 
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49) 
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299) 
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:269) 
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
        at java.lang.Thread.run(Thread.java:818) 
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446) 
03-27 14:19:41.580 7991-7991/com.twilala I/Glide: Root cause (7 of 7)
    java.io.FileNotFoundException: No content provider: https://graph.facebook.com/1696341717099429/picture?width=90&height=90
        at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1141)
        at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:991)
        at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:914)
        at com.bumptech.glide.load.data.AssetFileDescriptorLocalUriFetcher.loadResource(AssetFileDescriptorLocalUriFetcher.java:22)
        at com.bumptech.glide.load.data.AssetFileDescriptorLocalUriFetcher.loadResource(AssetFileDescriptorLocalUriFetcher.java:13)
        at com.bumptech.glide.load.data.LocalUriFetcher.loadData(LocalUriFetcher.java:44)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:62)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:415)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherReady(SourceGenerator.java:135)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95)
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:415)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:376)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherReady(SourceGenerator.java:135)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:95)
        at com.bumptech.glide.load.model.FileLoader$FileFetcher.loadData(FileLoader.java:76)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:394)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataFetcherFailed(SourceGenerator.java:141)
        at com.bumptech.glide.load.engine.DataCacheGenerator.onLoadFailed(DataCacheGenerator.java:100)
        at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:70)
        at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:75)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:49)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:269)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at java.lang.Thread.run(Thread.java:818)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)

enhancement question

Most helpful comment

I'm experiencing the same, getting the profile pic as lookaside.facebook.com and it won't get the usual picture URL and it only prompts to download the pic, that's odd

All 9 comments

After researching a bit I got that the response headers of GET lookaside.facebook.com/platform/profilepic/… and de url of the graph api comented in the post contains Content-Disposition => attachment And seems not being supported by Picasso,Glide, etc

So is this a Facebook bug or we have to wait a Glide fix/implementation?

Strange, I'm actually not sure. In a browser that just downloads the image in question and some documentation suggests that's the expected behavior: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition.

Are there other urls that are less specifically for downloads available in the API? Maybe they use a different url style for images that are meant to be displayed in clients vs those that are meant to be downloaded?

@sjudd it's opened as a bug in Facebook...

https://developers.facebook.com/bugs/261587761048160/

I'm experiencing the same, getting the profile pic as lookaside.facebook.com and it won't get the usual picture URL and it only prompts to download the pic, that's odd

I am facing the same issue, any fix ?

@Subair-tc there is problem with header "content-disposition" from facebook. They changed it to "attachement". I'm changing it in okhttp interceptor to inline and everything is working.

@Mistic92 what ?

@Berser6523
Currently facebook api have another but and it's returning default avatar for every user. So no more problem with Glide and this issue can be closed.
But if problem get back you can try to do this if using OkHttp as Glide network client.

https://gist.github.com/Mistic92/32666a79e3f28e40b25f87234e228b00

@Mistic92
Thank you for your solution, it works, but only when you are logged in to facebook
I store the image URL in SharedPreferences
When I quit the app and use it again, glide won't be able to display the image via the image URL
I must repeatedly log out and login to show again
Is there any other solution?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

StefMa picture StefMa  Â·  3Comments

technoir42 picture technoir42  Â·  3Comments

FooBarBacon picture FooBarBacon  Â·  3Comments

sergeyfitis picture sergeyfitis  Â·  3Comments

piedpiperlol picture piedpiperlol  Â·  3Comments