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 @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.

            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

                            20

                            Online

                            1.7k

                            Users

                            11.8k

                            Topics

                            102.6k

                            Posts