<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Get error fetch failed when i make a post request on localhost but wouldn't expect it in Developer Q&amp;A Forum</title>
    <link>https://community.dynatrace.com/t5/Developer-Q-A-Forum/Get-error-fetch-failed-when-i-make-a-post-request-on-localhost/m-p/205145#M191</link>
    <description>&lt;P&gt;&lt;STRONG&gt;Problem:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I have a node.js server running on localhost on port 3000. When I do a POST request in an app function I get an error. If I do the same request to remote url it works fine.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Error I got:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt; console.error
    response failed because:  TypeError: fetch failed
        at fetch (C:\Users\markus.hobisch\IdeaProjects\dynatrace-cpa\node_modules\undici\index.js:105:13)
        at processTicksAndRejections (node:internal/process/task_queues:95:5)
        at makePostRequest (C:\Users\markus.hobisch\IdeaProjects\dynatrace-cpa\api\collect-cloudwatch-logs-vpc-logs.ts:19:20)
        at fetchData (C:\Users\markus.hobisch\IdeaProjects\dynatrace-cpa\api\collect-cloudwatch-logs-vpc-logs.ts:67:16)
        at collectCloudwatchLogsVpcLogs (C:\Users\markus.hobisch\IdeaProjects\dynatrace-cpa\api\collect-cloudwatch-logs-vpc-logs.ts:89:22)
        at Object.&amp;lt;anonymous&amp;gt; (C:\Users\markus.hobisch\IdeaProjects\dynatrace-cpa\api\fetch-cloud-watch-logs.test.ts:34:54) {
      cause: Error: connect ECONNREFUSED ::1:3000
          at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1487:16)
          at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17) {
        errno: -4078,
        code: 'ECONNREFUSED',
        syscall: 'connect',
        address: '::1',
        port: 3000
      }
    }&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I added a screenshot with the error I got in debug UI as well.&lt;/P&gt;
&lt;P&gt;I just made a simple post request to localhost and remote host. To produce the error you can use the code below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;const urlLocalhost = 'http://localhost:3000/api/cloudwatch-logs-simulator';
  const data = {
    logStreamName: 'name',
    startTime: 1675926120000,
    endTime: 1675926300000,
    nextToken: 'f/90/s',
    limit: 100,
  };

  const urlRemote = 'https://jsonplaceholder.typicode.com/posts';
  let response: Response;

  try {
    response = await makePostRequest(urlLocalhost, data);
  } catch (error) {
    console.error('response failed because: ', error);
    return;
  }

  const json = (await response.json()) as Promise&amp;lt;CollectCloudwatchLogsResponse&amp;gt;;
  return Promise.resolve(json);
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;const makePostRequest = async (url: string, data: any): Promise&amp;lt;Response&amp;gt; =&amp;gt; {
  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(data),
  });

  if (!response.ok) {
    throw new Error(`HTTP error! Status: ${response.status}`);
  }

  return response;
};&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers&lt;/P&gt;
&lt;P&gt;Markus&lt;/P&gt;</description>
    <pubDate>Thu, 20 Apr 2023 07:49:07 GMT</pubDate>
    <dc:creator>MarkusHobisch</dc:creator>
    <dc:date>2023-04-20T07:49:07Z</dc:date>
    <item>
      <title>Get error fetch failed when i make a post request on localhost but wouldn't expect it</title>
      <link>https://community.dynatrace.com/t5/Developer-Q-A-Forum/Get-error-fetch-failed-when-i-make-a-post-request-on-localhost/m-p/205145#M191</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Problem:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I have a node.js server running on localhost on port 3000. When I do a POST request in an app function I get an error. If I do the same request to remote url it works fine.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Error I got:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt; console.error
    response failed because:  TypeError: fetch failed
        at fetch (C:\Users\markus.hobisch\IdeaProjects\dynatrace-cpa\node_modules\undici\index.js:105:13)
        at processTicksAndRejections (node:internal/process/task_queues:95:5)
        at makePostRequest (C:\Users\markus.hobisch\IdeaProjects\dynatrace-cpa\api\collect-cloudwatch-logs-vpc-logs.ts:19:20)
        at fetchData (C:\Users\markus.hobisch\IdeaProjects\dynatrace-cpa\api\collect-cloudwatch-logs-vpc-logs.ts:67:16)
        at collectCloudwatchLogsVpcLogs (C:\Users\markus.hobisch\IdeaProjects\dynatrace-cpa\api\collect-cloudwatch-logs-vpc-logs.ts:89:22)
        at Object.&amp;lt;anonymous&amp;gt; (C:\Users\markus.hobisch\IdeaProjects\dynatrace-cpa\api\fetch-cloud-watch-logs.test.ts:34:54) {
      cause: Error: connect ECONNREFUSED ::1:3000
          at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1487:16)
          at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17) {
        errno: -4078,
        code: 'ECONNREFUSED',
        syscall: 'connect',
        address: '::1',
        port: 3000
      }
    }&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I added a screenshot with the error I got in debug UI as well.&lt;/P&gt;
&lt;P&gt;I just made a simple post request to localhost and remote host. To produce the error you can use the code below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;const urlLocalhost = 'http://localhost:3000/api/cloudwatch-logs-simulator';
  const data = {
    logStreamName: 'name',
    startTime: 1675926120000,
    endTime: 1675926300000,
    nextToken: 'f/90/s',
    limit: 100,
  };

  const urlRemote = 'https://jsonplaceholder.typicode.com/posts';
  let response: Response;

  try {
    response = await makePostRequest(urlLocalhost, data);
  } catch (error) {
    console.error('response failed because: ', error);
    return;
  }

  const json = (await response.json()) as Promise&amp;lt;CollectCloudwatchLogsResponse&amp;gt;;
  return Promise.resolve(json);
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;const makePostRequest = async (url: string, data: any): Promise&amp;lt;Response&amp;gt; =&amp;gt; {
  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(data),
  });

  if (!response.ok) {
    throw new Error(`HTTP error! Status: ${response.status}`);
  }

  return response;
};&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers&lt;/P&gt;
&lt;P&gt;Markus&lt;/P&gt;</description>
      <pubDate>Thu, 20 Apr 2023 07:49:07 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Developer-Q-A-Forum/Get-error-fetch-failed-when-i-make-a-post-request-on-localhost/m-p/205145#M191</guid>
      <dc:creator>MarkusHobisch</dc:creator>
      <dc:date>2023-04-20T07:49:07Z</dc:date>
    </item>
    <item>
      <title>Re: Get error fetch failed when i make a post request on localhost but wouldn't expect it</title>
      <link>https://community.dynatrace.com/t5/Developer-Q-A-Forum/Get-error-fetch-failed-when-i-make-a-post-request-on-localhost/m-p/205148#M192</link>
      <description>&lt;P&gt;Hi Markus,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I assume want to call your local API from your locally running App, right?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As soon as your app function is deployed, you can't reach localhost.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The error you're getting is a generic "Connection refused" from node.&lt;/P&gt;
&lt;P&gt;On which port you are running your app dev server?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Apr 2023 07:39:14 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Developer-Q-A-Forum/Get-error-fetch-failed-when-i-make-a-post-request-on-localhost/m-p/205148#M192</guid>
      <dc:creator>christian_barth</dc:creator>
      <dc:date>2023-04-19T07:39:14Z</dc:date>
    </item>
    <item>
      <title>Re: Get error fetch failed when i make a post request on localhost but wouldn't expect it</title>
      <link>https://community.dynatrace.com/t5/Developer-Q-A-Forum/Get-error-fetch-failed-when-i-make-a-post-request-on-localhost/m-p/205151#M193</link>
      <description>&lt;P&gt;Hi Christian,&lt;/P&gt;
&lt;P&gt;I think I already solved my problem. The problem was that I used localhost instead of 127.0.0.1. This is a known bug in NodeJS 18. See here:&amp;nbsp;&lt;A href="https://github.com/node-fetch/node-fetch/issues/1624" target="_blank"&gt;ECONNREFUSED on NodeJS 18 · Issue #1624 · node-fetch/node-fetch · GitHub.&lt;/A&gt;&lt;BR /&gt;After I changed this my tests are green now. Thank you anyway for your response.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Feb 2023 17:37:37 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Developer-Q-A-Forum/Get-error-fetch-failed-when-i-make-a-post-request-on-localhost/m-p/205151#M193</guid>
      <dc:creator>MarkusHobisch</dc:creator>
      <dc:date>2023-02-20T17:37:37Z</dc:date>
    </item>
  </channel>
</rss>

