Post Request to Upload Audio File to Flowise

Describe the problem/error/question

I can’t figure out the correct HTTP POST request that is need to upload a an audio file (ogg) to a self hosted instance of Flowise.

I am following the Javascript code example from the Flowise API Docs

async function query(data) {
    const response = await fetch(
        "http://localhost:3000/api/v1/prediction/<chatlfowid>",
        {
            method: "POST",
            headers: {
                "Content-Type": "application/json"
            },
            body: JSON.stringify(data)
        }
    );
    const result = await response.json();
    return result;
}

query({
    "uploads": [
        {
            "data": 'data:audio/webm;codecs=opus;base64,GkXf', //base64 string
            "type": 'audio',
            "name": 'audio.wav',
            "mime": 'audio/webm'
        }
    ]
}).then((response) => {
    console.log(response);
});

I have been successful in sending a POST Request with a text payload by followinng their example, but no matter what iteration I try for the file upload, I can’t get it right.

The error message I get:

Error: predictionsServices.buildChatflow - Cannot read properties of undefined (reading ‘split’)

Please share your workflow

For feasibility purposes, I have substituted an “Execution Data” node in place of an HTTP GET request that I actually use to download the ogg file. But I have pasted the exact output of the binary file that is outputted by the HTTP Get node into the temporary “Execution Data” node.

Share the output returned by the last node

The console log of the output of the HTTP Post node is:

{
    "headers": {
        "content-type": "application/json",
        "accept": "application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, image/*;q=0.8, */*;q=0.7"
    },
    "method": "POST",
    "uri": “https://myflowise.webhook.com/api/v1/prediction/asdad2da-8e5b-4785-a3a8-9034aac3a14b",
    "gzip": true,
    "rejectUnauthorized": true,
    "followRedirect": true,
    "resolveWithFullResponse": true,
    "followAllRedirects": true,
    "timeout": 300000,
    "body": {
        "uploads": [
            {
                "data": "VDJkblV3QUNBQUFBQUFBQUFBQmtBQUFBQUFBQUFESTVNRkFCRTA5d2RYTklaV0ZrQVFFNEFZQStBQUFBQUFCUFoyZFRBQUFBQUFBQUFBQUFBR1FBQUFBQkFBQUFXeEhyRmdFWVQzQjFjMVJoWjNNSUFBQUFWMmhoZEhOQmNIQUFBQUFBVDJkblV3QUF1TmtCQUFBQUFBQmtBQUFBQWdBQUFCTlh4VXdaK2Y4eS95VDIrdHR4QWdJdEF1di9RdjhlK2VmdTJ2Ris2MHVHSkI4bktTMkFqK0gwbkJIK09SNU9RMkRMdjBrYlVNT2FGeGNCUEtkZDZURG5LcllQL2JFcGdLcVFGTU42TllyWTYrV2YzWjh5amUxM0pULzU0NDB4dVV1b0VtMGRWQzhDZ2Nxd3dkdWJCSkpESFYvUGo3bWtLU0VMU29ZeERBeCtsSlZ3RnQvT3FoSEszU0tLc09sQWhJVU1HbncrUWtFamxvUVZyS2dYZk56dWE1a21KNWcwMG44MEgxcTZ0ZnJueFlJbWFBWlk2aEMzaC9lYngvNXIvN2I2d1RNZ3VjdTJyaXpjc3VKU1MySHFDSFZhTHlBTXBhUmYyK2VWUnFpakR2SlRwVnkyOHlLdE5hb2kyNVlWa20rOHFFVkREcDRvYUE5Q09udndrdWszcWJOSTQ1cWpTOG1pZzEzV21NM01yR3l1S1Bxbm9FdUdNQ3dtTkRpNEZmVmhIWHpxWEQ1Ris0ZHpYbmVieC9xYXJGakpmNDg3VGtLYzVkaWVKU1RxK0gxOFdOT3I1VFBHQ3VkMnpLaTN6YkNkRTNzYkNSbnpCYk81WS83NnR1VUlCejhMKzZ2R3JDVllMSGdEN2tHbzhGSVJ0NHRvTkhKSks3WUZmbVc5S3pOSzBaTVhEM3d2NnNEQURING9iU3ZKcnIwZFRaeWs2dmV6QVFkMkttejB0Z1dTK25EcVpxMVI2Y3pBVFpnWkQrMThQUU51MnJjNGs2bGVSeEtLbjhnYXRFZG9kNi9neHV5V3czZ1lRZVRzY0tZd0NyWHZmMjFVMkFRd3hGVUlvWjBmRmpub3hsZHByaWtwc1FIUzhJTEJNRGdtMm5JK2J3RW5EeWJxL0htTW5EQmM2bXRaTmw1eUo1aXdzMEw5Q2FlZ3piYi9TNktISDUyNGp3SkEzY0swQ3cxOVF6T0d3OVlieG8vZkFmS2JsK01QZmJJUGRESmhyNGhNTmU2eWdQNGwyd0g5TmlwSVM0WXpNQ3N3TTVTZ1BrNEVZcWtmMzhPcUhJdjFPVlFqMG9UM2ZEdVo2bHlWWWNKY0pDa1JIVXBEeGw1b2wvZ1B4NVZ4dGh5Sys4NEQySlhHOThiT0xtQ1R0c1NUL0VHdUVFcEp1MDhOdnh4bkhQN3hnMXRDSmc4L0NKSlN5eGZvVFBvdlFZUVp4SmcyZ0lVY1hOSTZKbTFBbXdHVG1zVkI2NDhRTWdTWVpORDFDTFpnYWNTSjYwU3hEaEV0bER6TFhDUFJPS0NWc0V4VkFPRjFMYXQzUEJ5UG9lUEk4dVZhQWswT1FkeUNORVR0OWpRWFFEMERrNmR3Wks4eHVPemx0dlpKRm5hVlZmTWp3ejFFdWw2VlVyN0RwK3pZaG5xalpRUm5sUmdaMWZZOCt6OHhwNStaa3V0enV4VkdBTm1oUHQvTjJCZHEyMENWUXJqSW9ydE9UeC9zTmM3NXorR0orTThVbkhROGJ3bml5NWJ5U3JCU05PWkpkT3FkTlN0TGxlZXdTNFlxTGlVbUo1VEVQWFU4b3BlanFXeENRTVR5NjhMaXVURlBrWTBJa0wwbVdwYXhTOUExbUdGYVc1ZG1XaHQ0Y0pOK0w1QVlJTjhNOHc5Mmora09NMEt4YmFyVWplQnp5Qm1TSDVXdkhQQ25xa1RCYVFZOWF3WVJZNFJJZ3hDRDB4U2xGa2NJZ0owOWxkSVU4UkE2UDEvUjlxb3gwZ2N2SUV5MGJPVFFBTE1OcTBZZ1BRUS9GcnJIdXBseTdtQS85Q0pBZjN0cHlpcE9KRUlKRGk3SVplbC9CNDJxVlRYeWtHQThyWjR4cDNVejdlaDE2TGJ1UmRyTzVqdmk2MmQyOStKdFUrN1BpdTZQci9GUmp4UndJRFE4R1VTaDdLOXRHc3FJZ29PV0RqSjUwWEhreHBXWEtVRHNTeDhSL0pCOWpzSTNKOVAyUzRZa0p5Y29NVHFMd3lNelhJNTNkSVAvOFdJN3hpR3lrRWtTK0VJY0VLMnlkaHd4WHRydTBINEJPRG03VEtYeituM0NMNkhKanpOWG5OdnFpd3lobkFscG9rUUpNTlBPanR6OUJJZWQzSDhVQnptWTF5V1FDR0FLL3djamdrNE8ybWV1WjFGeFBnOU93UWxYY3JSVWlNZVZFVDE3L1hVazRJSzBXWGg1KzRsMzFsdnltaWVwSVBsLytGSTB6RVlzODdDYjVqZUNTWU55QWc3Yjg1c3Jqc1NESzlRSG1ZSlI5OUh3a2pYM29MeS9DSE1aMitVOHFUaVd4V3c2dHdHUGwzUnE4UlB5dmRPOGhIeUsvcG50c3EzUVBSVGJxNUJjMXhLMzVyWkk4R3RDcTBnNDljcDd2eWJjbVI5MTNsRXg1L3NrVzRWbnhhSjNhRXVHSGlRaUl5TUY4YStMUWFLQytOSlRTbXFUZk1DYUYvYklVa3FhRllBb1lqWlJRZkU0MlFoYitaemZXa0RwUlZ1Y0wwcE9tdk1VUnd4UmRUVzFIUEI4WXV1NE5Bc1YyTEE0R2tWMURrWWl1aVU0c2MvWjc5ME10SUZ0Yk1LKzRiNk40anZNaTVNVTZTdHRPQnJiUlB3UVFNZS9LbWVnN2lndmttU2p1clRqNXVvRDZFWFFIVWw0MzRNMnZqWTMybGd1ZU9UYmFnVXE1WnFlK0N4VmVoYVhQZldwK1pzQWhiU0pEelJZT3V3Z0tqYUlqT0FXQkE4ZFBnQzZwSGtmRTNaaDlyVFprMDdYUXI4cHJDclMydmN4Smx4TWsxMEdHNW95M0V1R0lpVWpBQUFGZ3dpWGl6WTFpeXdORzU3Rjd5WXVsZkhHaVY0c2FrK2J5VzVkS3VrQXZkc0lCWU1JakZQdkZ4cytuU2lHZEJ0V3ROd1k2QmwzYzUzZmhZanBYWG5uc0VlUUk0WjdvRGRLanlibmRKVGg3QWZHQmpubThzdWRGZ1djc2xqSDFjNXlNeGVUTlZVMWxCbXdTd1pMQmt1R0FBQUFBQUEzVEozQmkrUWdJNUpXWmlqVC9YNk9Db3hUWE5hcjRTZEVFYS82T0hMWThvZFNrYmRGUUVzR1M0WUFNaTRzSzRKY09iRGl1VHFneTBzYXhKY0FKRXNEanVVc0hBWTI0YktBbXZmWG15OTFEVFpOY2dOSjhsV2JOeFo2dmZzdi9EUEFnKzJKQW9DcjNoM01tN1ZNWW9mYjltVjNya0swTmNhYlFQbUFiY0FKdEZXTXN1dTRpY3N5U29GNVFieWprTEJIbkovV2tDbmtDWjE5dktwQXZkRmRLWllXLzVmcjZzTEovTVAwV202bnNmTEtDVklqMTdFWmpreEFzRklWL1c4TlROMFhzakhKQVo2eXhxTFdydWRnanJaUlYybHV2eXRML0hHUWFZc1J2ZVRXelBRYmVMQ1ZWNGQ4WnZqS1FjUm1UWmNhZ2pGMU82S3o1NU5GTmhLZVhWRjBhQWpHdjR0ZTE3Y3RrRzgzcmFpY0lFdUdNUzQwTXppdjI2Sy9kelhEV285ckZNa0RscDgxZnZnR0VQOFJmcXYzeTcxa0RCaHQwamp6enlxYTkvc1J5SWtFY053cnZ2cW1zREd1WlYyejdQS1k1YVBWWGZoV0tIUlVicE5Ba25PZnIzMlZtbXFBdjIxdklhRWxBS0lqMldkYmNqcGwwSzRYQVBRVmVIRWdYYjZOMVo3dzF1K08vT2R2NWZqSERqN0pKamdDNXBFRWs4RE1ZZ2VxRm9NK3hqTXl0UElDSHVKOUw0YXF1bHdiNXJXYzRGdjk1MnczeGhQcXZnK0Vib2N2U0szU0twMXBCOEpBSngvUTJzTzNOSStucEJuL0tSUGJrSXBHY3BDdVE5MEd0MjFzVEZFRlU3a090RUtkQW1FYW0xMkFLdmFwckxmR0JDNC9DZFVFMWwvcHNrL1RlUFBPcUEvdU11V2xPUXNBRFEwNDBLbTFlUUpiVVNoeFU4UTVXRmV6VzVFbWQrbUZNZkRrK2pVeVJVNmFLZ2xZamIxT09JYytVejkvelRQaUE2cm02U1FEdUowMWVDUGVhYXN6UUV1R05URW9MekNTeVUybXdBNlRVN2lieEhQK3RnTDhuTXNtQTJUOUZSRVd0UUM1d1krdG9wbEhsK3Y0OHBFTlE2eWlhdWhmVU92K2J5MEhnSlI4Q2JzdzdmYU5nVWZrV2JKOEFtVnN1MVlyWWFrbjhKM2dmWFYzaFZjdHhhMGxsTHJJQ05iVjMzbFlxTGl1bnFDVUQxNTd3WVRwTU1Vc2VBMmh1UzVqYlZVODlTSk5seUpsWWxZdzlMMjNxUjl5T3pQbXI5T0FsQk1pRFpqbnl3UTA2WVBic1RDWDc1YVlndzNkOW9jb1FOdXVHS29PVE5UWC9MR1BzUmcwRDZGSk9qMzBOWVNVRDE1NzFkVGsvWkpwOTc4VWY2MW5oT0NHSnoxS29tZkRhOTJMYmFCUXBrd1djS2IySTFubnVId0F1aFB0T0cyVUQxajF5eUpTaHZzSndYcjhOWHFEck80Q2ZPUVZiTkc1RHJyeitQdzlqcEtPU081TkZxVncwRXVHTFNrcktDcVQ2dDEwbWVmU2dMVXRwdFhqZFBUakJSZFFZVmx1eWU5QkZrd1VoR01IclVBc05LUzRROXBvcDlEMUQwQ1NXUkFiamlWcFkySjlkT3lCNlFTUVBUNm43ZDFGWXZHVU1zdnVXQUR3ODljaXFTQ09sNVFNVm8rVGlSUDN1VGhsVUtOc3I0RmRLbE5hNCtSUUJmME00MHhPNXVaOUlzM21KWjczeEt5RFdnZStuQmlPSUFzSzV1SWlqMEhSc25GVDZCYUc5UXVjY0x5cjd5Wkt2RzJieEpwS0tkaGNIL2pSS0R3Z2pmRFBBWk9iZW1KQ1MxdjhFYm5wWURHMHVraXhWdFMvSjBNWFZWWnZzdHFUZ0ZiSjZ2ZDJqVGd3QmNzOUVyUEVNdWl2T3R4TDhrYmtlNzZhT0NIbnpkV0d5V1ZGdFZyN2dFdUdKeVVvSXlRNDRzNDhPaW4ycUE5bm9QS0hRdVpEVnVzbjg2NXk1RmpvbkxwNURPOXFGZjArZFFrTkpxUTQxeEpad3lNSVpaK2VseHlqczA0OFY1alBQQ2NndDY5RGNaTHpmNHQ2Q0NldUQrRFFPQnBsQytwbFN6V2JUL0grR1lmZXErMzV0SjZDL3pjR1RmNlhsU1J0blRoRGpBbHRiNFg3SERnUUxGSTJvcDJ4UldIdytlRDBpOXI3OGNEajFQREVMbmhPRHA4QlhZNnBta1FJTjBweEEydE0xNDBWdU55REU2OHcwQkRrc0VNL3djUDZGd20wSVQ0S1ZaM3FLYnJnQllQNkVjM0I1bnFNb3hnQzJVaE5lT0FuSTJabW5KdmJEY05HdHlzZm1ReVRVK3h3OEV1R0lpSXJKU2czUWpqRHZqNmRycm11U2VLTk9MUXFWMnU4eEhUMXV0M0Fpb1ZpbUZ1bW9OcEFOMElZeEE4Sk9rRGdoWjFGVFlNRE1NY2lYNVdOMUoxTnhSR3Jkazh1UDdNaHpqWjVkK1RIZHhxSW5NSHNHUkkvZ2NhQm4wbjEzWkI1Q1kyM1ZPQnVnTytJYU0zTld1aFJmT0FicW9BMmVXTzRFbW84R1g0MU81b2szNks2SnFHT1oxT0ZRUGZsUFhTL1Y4QUFnQUFuSlJNV05uR2F5ZzV2U09kU0ZBeENyRHVramVRcTM5SGZETnJYZytUUDVxeFZFYlVlMFExemVjOUxQamRKN2FqZzhJRlZQbXJjVDRrZzFhOW9kbnJzZVlRVU54cmtjaWpIZ0V0V3FMZWJJQUJlRDA0eHNrQkxoaVVqSmg4ak4wbmpDa0FlbEsvUHJXV3hPRFd4V0ZzbVZyMHpCamFobk1uQ2R0MXQwY1J5eGdsY2VBV0Q2UnF5eDBhNEMwb3JoNkFveW9aNjQ3bnJlRFpaR0lDUUx3ek9ob3MzZ004c04weU5pSXVRRU9uaWovM0x5QnhYaFhwczJmamVTQjh5c1ZjcjBNak1kREhzZnNMS25NSUZnd2wwck1vckx2QjloTUJHdmp4d2FjOE81NE93UXNPcU82VGtranVBTjBuakRMODExZitkdzlROEgwY3ROVSsxV1N0MENqeGEzYXM1ejJOclAxQ0NES2czUWxBaGhWbHExam5nbXorMDFFVXZXNVdzVEsrM3lSVStCdWtMRklMb2dmNDVFa3VHS1NZbUppazNDZXV6Y3hza3NkdG1WUytsZDdxRG52VHFMRDkweXQ0WWpzVFVVRUE0T2J1aEdQVFdPN2s2Z0RaeHR3Zm9hd1pFNGJmZERHdkxUOEE1ajRTZzhZbkVneFNScGx6VHMwYjRZOG5WMXNJMU5wbS8wcTNwNkpBaEJTdHY3RFJNQ00rTWhhR2pzZGNGK3dZMkhrcFFzV0ZEMGZkdkRxQTNTbzliNGF2UVVCVkxIcjF2RmRWMmhEZWIrSVgxQXFGY0Z3Sll6cFFLeXVldmNDT29nRGRDT0JIemt2eGZtMUdad2JyNlFNbW5yaU1zUVpaRVZNbFE4UnJ2MmNqK3VoQXNTYTREWnNZd04wTUdCU1QvOFhJRW5wSFFDRU5IamdUSGhGNndUSVB2WFphaEdscjAxY1J1SGhHVEYwQkxoaWdBQUFBdE9CcHEwTHR6ODZVbzhRamRFZ09nNzJvQjBtams3T3BLL3FVcGxBYmp5MklZRTVrc2s1OFVvSUpacnA3ekpvOWdWc1pUWm02MGVBQUdHcWtzL0tYT08xUlV0bUFKRWI4aTBGamxjSko2RFArMVpvdHpYVGpYSFBIR0YyeTFkSXl0cm0vc25RNyt6UlFwSVdyNTgrZndXQVowb3o1ZGxzaExoaW9sSWlra09CcFRJcXBUYWpPWXJpSWRuRThrZHA4ekJ3MlhpNjlpRDM2WGNJWVUxZ1E5MDVLMnJabE9UY0tBT0JMRmhEL2VZeHYvOHVWdWxzR2E2NFVDcDlSNisrcnFFLzROb3NnVUFBUkk2blRhM0RnU3hGWDFjTUpLdXhMa3hGTHhrdmRzeW1EbGFZYjRHR2Q5S2ZDcW1yYlZPR0E0RXFoN0dUb2hDZzl6S2VQYlZMNXJBWCtXT203clpNZXovU0N1eW5Pc09BV1RibVhROG5tYVVEZ2FVdS9vTGZJMGIzdWs0dG5xUEs5cFNzR1QwUVVTbE5TSEZWQ1JHMUNsOS92T0hqZ2FUcllRWks3L2h5VFJFV1Npc1VOQUZHS2lSTzQ3S3B3TGRPd2xURXhZU3ZvN2FKZGdUMmRuVXdBQU9PRUJBQUFBQUFCa0FBQUFBd0FBQVBqcXAyMEJTa29pTjlwS2paM0xzYm9BSWFueEh4MnBTZnJTMDduQ1NsMnJwcmJ3YklFcnZIOEVDRGRDVUtwQ1BWRmh2cCtjWnFYenBTZm0zSXhCVHZaeTdLRU5hY1kreUNiWk1yNDNhRHZn",
                "type": "audio",
                "name": "39561be1a102a7f0107fcdc6d0a0833a.ogg",
                "mime": "audio/ogg"
            }
        ]
    },
    "encoding": null,
    "json": false,
    "useStream": true
}

Information on your n8n setup

  • n8n version: 1.55.3
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker):
  • Operating system: Ubuntu 22.04

It looks like your topic is missing some important information. Could you provide the following if applicable.

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

@T33KS , your data value does not look right, not according to the API documentation. If you look at the examples, the data value should in the the form

data:audio/webm;codecs=opus;base64,<base64-encoded-file>

According to your workflow, you seem to base64 encode the data twice. As a result, you also miss out on the prefix data:audio/webm;codecs=opus;base64,, which in your case would be something like data:audio/ogg;codecs=opus;base64, (not sure about codecs used though).

I other words, this prefix should be present unencoded as part of the data followed by the encoded content of the actual audio file.

1 Like

Thank you for your reply.

Your are right that there was a missing part in the request, but even after adding it, I couldn’t get it to work.

After thorough testing, the problem turned out to be with Flowise’s API, and not n8n.

I opened an issue there and they’re working on it.

2 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.