In sandbox environment, immediately after the callout request I get a callout response "System.HttpResponse[Status=Forbidden, StatusCode=403]" even though I have already configured the domain in the remote site configurations and verified the request, it works fine in any other client but salesforce. I've already verified that the request is not hitting the server in the other side of the request, so it must not be leaving salesforce for some reason.

Here is my request:

public String calloutNcall() {

    HttpRequest req = new HttpRequest();
    HttpResponse res = new HttpResponse();
    Http http = new Http();

    params = 'magic=1333';
    params += '&ramal' + ramal;
    params += '&numero' + ani;
    params += '&espera=60';
    params += '&nome=NCall';
    req.setHeader('Content-Type', 'application/x-www-form-urlencoded'); 

    try {
        res = http.send(req);
    } catch(System.CalloutException e) {
        System.debug('Callout error: '+ e);
    this.result = res.getBody();
    return null;}

Here is the weird response:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ERROR: The requested URL could not be retrieved</title> <style type="text/css"><!-- /* Stylesheet for Squid Error pages Adapted from design by Free CSS Templates http://www.freecsstemplates.org Released for free under a Creative Commons Attribution 2.5 License */ /* Page basics */ * { font-family: verdana, sans-serif; } html body { margin: 0; padding: 0; background: #efefef; font-size: 12px; color: #1e1e1e; } /* Page displayed title area */ #titles { margin-left: 15px; padding: 10px; padding-left: 100px; background: url('http://www.squid-cache.org/Artwork/SN.png') no-repeat left; } /* initial title */ #titles h1 { color: #000000; } #titles h2 { color: #000000; } /* special event: FTP success page titles */ #titles ftpsuccess { background-color:#00ff00; width:100%; } /* Page displayed body content area */ #content { padding: 10px; background: #ffffff; } /* General text */ p { } /* error brief description */ #error p { } /* some data which may have caused the problem */ #data { } /* the error message received from the system or other software */ #sysmsg { } pre { font-family:sans-serif; } /* special event: FTP / Gopher directory listing */ #dirmsg { font-family: courier; color: black; font-size: 10pt; } #dirlisting { margin-left: 2%; margin-right: 2%; } #dirlisting tr.entry td.icon,td.filename,td.size,td.date { border-bottom: groove; } #dirlisting td.size { width: 50px; text-align: right; padding-right: 5px; } /* horizontal lines */ hr { margin: 0; } /* page displayed footer area */ #footer { font-size: 9px; padding-left: 10px; } body :lang(fa) { direction: rtl; font-size: 100%; font-family: Tahoma, Roya, sans-serif; float: right; } :lang(he) { direction: rtl; } --></style> </head><body id=ERR_ACCESS_DENIED> <div id="titles"> <h1>ERROR</h1> <h2>The requested URL could not be retrieved</h2> </div> <hr> <div id="content"> <p>The following error was encountered while trying to retrieve the URL: <a href="http://ncall.myinstance.com.br/ncall/servicos/click2call.php">http://ncall.myinstance.com.br/ncall/servicos/click2call.php</a></p> <blockquote id="error"> <p><b>Access Denied.</b></p> </blockquote> <p>Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.</p> <p>Your cache administrator is <a href="mailto:support@salesforce.com?subject=CacheErrorInfo%20-%20ERR_ACCESS_DENIED&amp;body=CacheHost%3A%20proxy-dfw.net.salesforce.com%0D%0AErrPage%3A%20ERR_ACCESS_DENIED%0D%0AErr%3A%20%5Bnone%5D%0D%0ATimeStamp%3A%20Thu,%2006%20Oct%202016%2014%3A10%3A29%20GMT%0D%0A%0D%0AClientIP%3A%2010.247.62.9%0D%0A%0D%0AHTTP%20Request%3A%0D%0APOST%20%2Fncall%2Fservicos%2Fclick2call.php%20HTTP%2F1.1%0AUser-Agent%3A%20SFDC-Callout%2F37.0%0D%0ASFDC_STACK_DEPTH%3A%201%0D%0AContent-Type%3A%20application%2Fx-www-form-urlencoded%0D%0ACache-Control%3A%20no-cache%0D%0APragma%3A%20no-cache%0D%0AHost%3A%20ncall.myinstance.com.br%0D%0AAccept%3A%20text%2Fhtml,%20image%2Fgif,%20image%2Fjpeg,%20*%3B%20q%3D.2,%20*%2F*%3B%20q%3D.2%0D%0AProxy-Connection%3A%20keep-alive%0D%0AContent-Length%3A%2058%0D%0AX-Forwarded-For%3A%2010.247.221.59%0D%0A%0D%0A%0D%0A">support@salesforce.com</a>.</p> <br> </div> <hr> <div id="footer"> <p>Generated Thu, 06 Oct 2016 14:10:29 GMT by proxy-dfw.net.salesforce.com (squid)</p> <!-- ERR_ACCESS_DENIED --> </div> </body></html>

Any idea what's happening here? I'm lost.

Thanks :)


The endpoint I'm trying to reach is our domain in our VoIP company, where our instance is hosted, when I enter the directory http://ncall.myinstance.com.br/ncall/servicos/ I can see a message at the bottom Apache/2.2.22 (Debian) Server at ncall.myinstance.com.br Port 80 it can be that salesforce is not "seeing" this endpoint? Some DNS configuration missing?

  • If you save the message as a HTML file and view it it does look like an error that could be generated within Salesforce. Did you change the endpoint to post here as your posted one gives "ncall.myinstance.com.br’s server DNS address could not be found" (doing a GET) so will not work?
    – Keith C
    Oct 6, 2016 at 17:58
  • you are setting URL params in the body for a POST (where normally the body would be JSON). Could that be it?
    – cropredy
    Oct 6, 2016 at 18:11
  • I've tried doing a GET to the directory http://ncall.myinstance.com.br/ncall/servicos/ without any of the parameters and still got the same damn error 403. If I do the GET to other random URL it works fine. Oct 6, 2016 at 18:32
  • Either the endpoint requires authentication or the endpoint is not accessible on the endpoint's server. 403 forbidden comes from the endpoint not from salesforce.
    – Eric
    Oct 6, 2016 at 18:39
  • The endpoint does not require any authentication... But the thing is, I'm monitoring the endpoint and the request never made it there. Oct 6, 2016 at 18:50


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy