title: Agora start Cloud Recording returns 400 with no error message
body: <p>I'm trying to set up Cloud Recording for Agora. I'm able to call the acquire method and obtain a Resource ID, but when I try to start recording I get a 400 response that has no error code or reason message. If I change any part of the request body I will get an error code of 2 with a reason message, so I think my request is formatted properly. Also, since the first request to acquire the resource ID is successful, I don't think there should be an authentication issue. The code to generate the RTC Token is being used elsewhere to create the channel and users are able to join channels in the app.</p>
  <pre><code>    requestBody := fmt.Sprintf(`
          {
              &quot;cname&quot;: &quot;%s&quot;,
              &quot;uid&quot;: &quot;%d&quot;,
              &quot;clientRequest&quot;: {
                  &quot;token&quot;: &quot;%s&quot;,
                  &quot;recordingConfig&quot;: {
                      &quot;maxIdleTime&quot;: 30,
                      &quot;streamTypes&quot;: 0,
                      &quot;channelType&quot;: 1,
                      &quot;transcodingConfig&quot;: {
                          &quot;height&quot;: 720,
                          &quot;width&quot;: 1280,
                          &quot;bitrate&quot;: 2260,
                          &quot;fps&quot;: 15,
                          &quot;mixedVideoLayout&quot;: 1,
                          &quot;backgroundColor&quot;: &quot;#000000&quot;
                      }
                  },
                  &quot;storageConfig&quot;: {
                      &quot;vendor&quot;: %d,
                      &quot;region&quot;: %d,
                      &quot;bucket&quot;: &quot;%s&quot;,
                      &quot;accessKey&quot;: &quot;%s&quot;,
                      &quot;secretKey&quot;: &quot;%s&quot;,
                      &quot;fileNamePrefix&quot;: [&quot;tracks&quot;]
                  }
              }
          }
      `, channelID, uid, rtcToken, 1 /*AWS*/, region, os.Getenv(&quot;AGORA_BUCKET_NAME&quot;),
          os.Getenv(&quot;AGORA_BUCKET_ACCESS_KEY&quot;), os.Getenv(&quot;AGORA_BUCKET_ACCESS_SECRET&quot;),
          channelID)
  
      reqUrl := &quot;https://api.agora.io/v1/apps/&quot; + os.Getenv(&quot;AGORA_APP_ID&quot;) + &quot;/cloud_recording/resourceid/&quot; + rid + &quot;/mode/mix/start&quot;
      req, err := http.NewRequest(&quot;POST&quot;, reqUrl,
          bytes.NewBuffer([]byte(requestBody)))
      if err != nil {
          return response, err
      }
  
      req.Header.Set(&quot;Content-Type&quot;, &quot;application/json&quot;)
      req.SetBasicAuth(os.Getenv(&quot;AGORA_CUSTOMER_ID&quot;), os.Getenv(&quot;AGORA_CUSTOMER_CERTIFICATE&quot;))
  
      resp, err := httpClient.Do(req)
      if err != nil {
          return response, err
      }
  
      if resp.StatusCode != http.StatusOK {
          // this is a 400 with no error code or reason
          logger.Log(&quot;statuscode&quot;, resp.StatusCode)
      }
  </code></pre>