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 6.0k 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 @Christoph Hart
      last edited by

      @Christoph-Hart is this a part of the latest develop branch commint?

      T 1 Reply Last reply Reply Quote 0
      • 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.

            Free HISE Bootcamp Full Course for beginners.
            YouTube Channel - Public HISE tutorials
            My Patreon - 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?

                Free HISE Bootcamp Full Course for beginners.
                YouTube Channel - Public HISE tutorials
                My Patreon - 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?

                    Free HISE Bootcamp Full Course for beginners.
                    YouTube Channel - Public HISE tutorials
                    My Patreon - 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.

                      https://forum.hise.audio/topic/12537/heads-up-server-downloadfile-issue-on-macos-sequoia-and-a-solution/23?_=1746090772136

                      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?

                        Free HISE Bootcamp Full Course for beginners.
                        YouTube Channel - Public HISE tutorials
                        My Patreon - 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.

                            Free HISE Bootcamp Full Course for beginners.
                            YouTube Channel - Public HISE tutorials
                            My Patreon - HISE tutorials

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

                            12

                            Online

                            2.0k

                            Users

                            12.7k

                            Topics

                            110.5k

                            Posts