HISE Logo Forum
    • Categories
    • Register
    • Login

    HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution

    Scheduled Pinned Locked Moved Bug Reports
    30 Posts 5 Posters 452 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tomekslesicki @tomekslesicki
      last edited by tomekslesicki

      Ok, a quick update on the subject - the XCode transport solution only works for some users. For others, the download callback returns this.data.finished = true && this.data.sucess = false even before anything can be downloaded. This is happening both on Windows now, and macOS, for about 0.5-1% of users, for everyone else things are working fine.

      Here's a very simplified overview of my download logic:

      At the beginning of the scrip, I call:

      Server.setBaseURL("https://");
      

      which is used for POST calls, and then this download callback, with the url aprt being the rest of the url, after the https part.

      inline function startDownload()
      {
      	// Download samples and content
      	for (i = 0; i < plugincontent.length; i++)
      	{
      		local files = workingFolder.getChildFile(plugincontent[i]);
      		downloads[i] = Server.downloadFile(url + plugincontent[i], p, files, downloadCallback);
      	}	
      
      	// There's just one zip file and it's always the first in the plugincontent array
      	zips[0] = workingFolder.getChildFile(plugincontent[0].replace(subfoldernamefull).replace(subfoldernamedemo));
      	
      	// Show update progress panel
      }
      
      
      function downloadCallback(obj)
      {
      	if (this.data.finished != true)
      	{
      		// Show and update download progress
      	}
      
      	// Connection lost
      	if (this.data.finished && this.data.success == false)
      	{
      		// Show error message
      	}
      
      	if (this.data.finished && this.data.success == true)
      	{
      		// Update downloaded files count and extract zips
      	}
      }
      

      As said, this works 100% for POST calls for all users. The problem is for 1% of users with the download callback. I remember having a similar issue with GET when I started this project.

      Save me, please!

      T 1 Reply Last reply Reply Quote 0
      • T
        tomekslesicki @tomekslesicki
        last edited by

        The p part is the authorization that’s getting passed to the server. I was having an issue using that with GET - again, very inconsistent and on some systems only, and I can’t reproduce it on any fo the 3 macs I have around - as though the parameter was not being passed to the server properly. So maybe it’s about that, but then I have no clue on how to troubleshoot this further.

        d.healeyD 1 Reply Last reply Reply Quote 0
        • d.healeyD
          d.healey @tomekslesicki
          last edited by

          @tomekslesicki Nothing in particular stands out to me. Here's my downloader if you want to compare.

          Libre Wave - Freedom respecting instruments and effects
          My Patreon - HISE tutorials
          YouTube Channel - Public HISE tutorials

          T 1 Reply Last reply Reply Quote 0
          • T
            tomekslesicki @d.healey
            last edited by

            Is there any way to print the final url with the parameter part? The docs https://docs.hise.dev/scripting/scripting-api/server/index.html#callwithget say that "The parameters have to be a non-nested JSON object and will automatically change the URL to embed these parameters". What does the final url look like after the change?

            1 Reply Last reply Reply Quote 0
            • d.healeyD
              d.healey @tomekslesicki
              last edited by d.healey

              @tomekslesicki said in HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution:

              The issue was only present on macOS Sequoia,

              Have the three customers tested other versions of MacOS?

              Libre Wave - Freedom respecting instruments and effects
              My Patreon - HISE tutorials
              YouTube Channel - Public HISE tutorials

              T 1 Reply Last reply Reply Quote 0
              • T
                tomekslesicki @d.healey
                last edited by

                @d-healey of course not ;-) But I also have one guy on Windows experiencing this now.

                d.healeyD 1 Reply Last reply Reply Quote 0
                • d.healeyD
                  d.healey @tomekslesicki
                  last edited by

                  @tomekslesicki said in HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution:

                  of course not ;-) But I also have one guy on Windows experiencing this now.

                  What is the common link between all the people who have the issue?

                  Libre Wave - Freedom respecting instruments and effects
                  My Patreon - HISE tutorials
                  YouTube Channel - Public HISE tutorials

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    tomekslesicki @d.healey
                    last edited by

                    @d-healey none, but I suspect the problem is with the parameter part of the url called by HISE. The reason I suspect this is that the POST calls are made to a different server, and they work fine. The download callback works fine wherever I test it and - again, works for the vast majority of users - but I guess it's possible that the parameter part is not attached to the call properly, and the server rejects it because it doesn't pass the authorization.

                    Link Preview Image
                    HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution

                    Is there any way to print the final url with the parameter part? The docs https://docs.hise.dev/scripting/scripting-api/server/index.html#callwithget say tha...

                    favicon

                    Forum (forum.hise.audio)

                    d.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @tomekslesicki
                      last edited by

                      @tomekslesicki said in HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution:

                      I suspect the problem is with the parameter part of the url called by HISE.

                      If that was the case wouldn't it fail for all users?

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        tomekslesicki @d.healey
                        last edited by

                        @d-healey maybe it works on some systems but not others, for whatever reason? Is there a way to get the final url of the call affected by the parameter property?

                        d.healeyD 1 Reply Last reply Reply Quote 0
                        • d.healeyD
                          d.healey @tomekslesicki
                          last edited by

                          @tomekslesicki said in HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution:

                          maybe it works on some systems but not others, for whatever reason?

                          That's why we need to find the common factor. Then you can recreate the system in a VM and debug it.

                          What OS are they using?
                          What DAW are they using?
                          Are you able to make a standalone app that just does the download call so that it can be tested in isolation?
                          Do they have a firewall?
                          Do they use a VPN?
                          Who is their internet provider?
                          What country are they in?
                          etc.

                          Find out everything that they have in common and build a VM to match.

                          @tomekslesicki said in HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution:

                          Is there a way to get the final url of the call affected by the parameter property?

                          Only on your server I think.

                          Libre Wave - Freedom respecting instruments and effects
                          My Patreon - HISE tutorials
                          YouTube Channel - Public HISE tutorials

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          13

                          Online

                          1.7k

                          Users

                          11.8k

                          Topics

                          102.6k

                          Posts