• Hello

    I am trying to connect to webcal://www.holdsport.dk/activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1

    – which is token based so no login is needed.

    I have tried by filling in
    http://www.holdsport.dk/activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1 and https://www.holdsport.dk/activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1 - but I get an HTTP 500 error (although Firefox fetches the ICS file from both addresses).

    I cannot see any further logging anywhere so I wonder if someone can help me along.

  • developer


    $ curl -v 'https://www.holdsport.dk/activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1 and https://www.holdsport.dk/activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1'
    > GET /activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1 and https://www.holdsport.dk/activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1 HTTP/2
    > Host: www.holdsport.dk
    > User-Agent: curl/7.64.1
    > Accept: */*
    * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
    * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
    * old SSL session ID is stale, removing
    * Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
    < HTTP/2 400 
    < date: Sat, 13 Apr 2019 23:25:38 GMT
    < set-cookie: __cfduid=de9fa8935c81d91001df4f3d5acd3a5261555197938; expires=Sun, 12-Apr-20 23:25:38 GMT; path=/; domain=.holdsport.dk; HttpOnly
    < expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
    < server: cloudflare
    < cf-ray: 4c71334b2ce0cba2-VIE

    Seems that the server returns 400 for curl and 500 for ICSx⁵. Please contact the server admin, because it seems to be broken.

  • Thank you very much

    What do I need to tell them is broken?

    I know for a fact this works for a lot of iPhone users

  • developer

    Just send them a link to this thread, they should now what 400 and 500 means.

  • Hello

    I am sure they do, but in order for them to investigate, they need to know what the error is. There is no problem with iPhones og Google Calenders, so in order for them to spend time on investigating a problem with a single user I need a bit more info/show them some more precise error message.

  • I also tried in Outlook. No issues there.

  • developer

    @fjelsten I have posted a precise HTTP request + error message in my post above. All details of the request are included. If there is anything else they need to know (what I can’t imagine), just let me know.

  • Hi

    I’m the backend developer responsible for the iCal feed.

    Let’s get this sorted out 🙂

    Here’s a working curl example returning 200:

    curl -v 'https://www.holdsport.dk/activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1'
    *   Trying
    * TCP_NODELAY set
    * Connected to www.holdsport.dk ( port 443 (#0)
    * ALPN, offering h2
    * ALPN, offering http/1.1
    * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
    * successfully set certificate verify locations:
    *   CAfile: /etc/ssl/cert.pem
      CApath: none
    * TLSv1.2 (OUT), TLS handshake, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Server hello (2):
    * TLSv1.2 (IN), TLS handshake, Certificate (11):
    * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
    * TLSv1.2 (IN), TLS handshake, Server finished (14):
    * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
    * TLSv1.2 (OUT), TLS change cipher, Client hello (1):
    * TLSv1.2 (OUT), TLS handshake, Finished (20):
    * TLSv1.2 (IN), TLS change cipher, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Finished (20):
    * SSL connection using TLSv1.2 / ECDHE-ECDSA-CHACHA20-POLY1305
    * ALPN, server accepted to use h2
    * Server certificate:
    *  subject: OU=Domain Control Validated; OU=PositiveSSL Multi-Domain; CN=ssl371927.cloudflaressl.com
    *  start date: May  5 00:00:00 2019 GMT
    *  expire date: Nov 11 23:59:59 2019 GMT
    *  subjectAltName: host "www.holdsport.dk" matched cert's "*.holdsport.dk"
    *  issuer: C=GB; ST=Greater Manchester; L=Salford; O=COMODO CA Limited; CN=COMODO ECC Domain Validation Secure Server CA 2
    *  SSL certificate verify ok.
    * Using HTTP2, server supports multi-use
    * Connection state changed (HTTP/2 confirmed)
    * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
    * Using Stream ID: 1 (easy handle 0x7fb034807a00)
    > GET /activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1 HTTP/2
    > Host: www.holdsport.dk
    > User-Agent: curl/7.54.0
    > Accept: */*
    * Connection state changed (MAX_CONCURRENT_STREAMS updated)!
    < HTTP/2 200
    < date: Tue, 07 May 2019 10:29:21 GMT
    < content-type: text/calendar; charset=utf-8
    < set-cookie: __cfduid=d5286bd437a7179ade7f53f39671e2f501557224960; expires=Wed, 06-May-20 10:29:20 GMT; path=/; domain=.holdsport.dk; HttpOnly
    < status: 200 OK
    < x-ua-compatible: IE=Edge,chrome=1
    < etag: "9ac59bdb3079eeaf79d816fb3b8ccb56"
    < cache-control: max-age=0, private, must-revalidate
    < set-cookie: ahoy_visitor=a1d1bb3c-c9c4-4cc6-9349-1a9f227c9fd3; path=/; expires=Fri, 07-May-2021 10:29:20 GMT
    < set-cookie: ahoy_visit=ad435174-e547-48de-bd74-db9646a7778a; path=/; expires=Tue, 07-May-2019 14:29:20 GMT
    < set-cookie: request_method=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
    < x-request-id: 1ed832ddd64677bc2ceaadf6a8fc799f
    < x-runtime: 1.475468
    < x-rack-cache: miss
    < vary: Origin
    < expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
    < server: cloudflare
    < cf-ray: 4d3283227842caf8-ARN
    PRODID;X-RICAL-TZSOURCE=TZINFO:-//com.denhaven2/NONSGML ri_cal gem//EN
    X-WR-CALNAME;VALUE=TEXT:U9 Drenge Årgang 2010  Stavtrup IF Fodbold

    Does that help debugging?

  • developer

    @joerichsen Hello! Thanks for your message!

    The 500 error seems to occur as soon as there is an “Android” in the User-Agent (the used version numbers are just an example):

    $ curl -v -H 'Accept: text/calendar, */*;q=0.9' -H 'User-Agent: ICSx5/1.0 (ical4j/1.0 okhttp/1.0 Android/1.0)' 'https://www.holdsport.dk/activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1'
    < HTTP/2 500 
    < status: 500 Internal Server Error

    Without “Android” in the User-Agent:

    $ curl -v -H 'Accept: text/calendar, */*;q=0.9' -H 'User-Agent: ICSx5/1.0 (ical4j/1.0 okhttp/1.0' 'https://www.holdsport.dk/activities.ics?attending=992976&token=%2FKzTJzDz%2BhpGfAFWqO2xZw%3D%3D&v=1'
    < HTTP/2 200 
    < status: 200 OK

    Can you confirm that?

  • OK, I can confirm 🙂 That’s a weird bug - I’ll look into it.

    Thank you for helping me debug this issue 👍

  • OK, thanks to your help I have found and fixed the issue 🙂

  • developer

    @joerichsen Thank you!
    @fjelsten Does it now work for you?

  • It works!


Similar topics