Why is CDN cache staying in the edge longer than the cache-control header that is set?
Take note on "Last-Modified" HTTP header of the CDN url.
Our CDN system will check this header for every CDN request, compare with the cache in the edge server. It is called "If-Modified-Since validation check". If the returned header gives the same "Last-Modified" result as the cache, then the file caching will be continued, although the expiry setting is reached.