# 404 error: new API + serveless index

**URL:** <https://community.pinecone.io/t/404-error-new-api-serveless-index/4200>\
**Category:** Support\
**Tags:** serverless\
**Created:** [January 19, 2024, 3:53pm UTC](https://community.pinecone.io/t/404-error-new-api-serveless-index/4200 "2024-01-19T15:53:03Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![younes.souilmi](https://sea2.discourse-cdn.com/flex020/user_avatar/community.pinecone.io/younes.souilmi/32/1938_2.png) [@younes.souilmi](https://community.pinecone.io/u/younes.souilmi)\
**Post date:** [January 19, 2024, 3:53pm UTC](https://community.pinecone.io/t/404-error-new-api-serveless-index/4200/1 "2024-01-19T15:53:03Z")

</div>

Hi guys,

upon migrating to the new Pinecone Node.js client (2.0.1) I am getting the following error:  
call to [https://api.pinecone.io/indexes/my-index-name](https://api.pinecone.io/indexes/my-index-name) returned HTTP status 404  
the old fashioned index url works fine. my-index-name is serverless  
Any idea what’s the issue?

Thanks in advance

---

<div class="post-metadata">

**Author:** ![jesse](https://sea2.discourse-cdn.com/flex020/user_avatar/community.pinecone.io/jesse/32/1658_2.png) [@jesse](https://community.pinecone.io/u/jesse)\
**Post date:** [January 19, 2024, 4:50pm UTC](https://community.pinecone.io/t/404-error-new-api-serveless-index/4200/2 "2024-01-19T16:50:58Z")

</div>

Hi @younes.souilmi. Can you share a bit more about what you’re trying to do and the relevant code?

In the meantime, [this docs page](https://docs.pinecone.io/docs/manage-indexes) has examples that might help. Be sure to select the “Javascript” tab in the code blocks.

---

<div class="post-metadata">

**Author:** ![younes.souilmi](https://sea2.discourse-cdn.com/flex020/user_avatar/community.pinecone.io/younes.souilmi/32/1938_2.png) [@younes.souilmi](https://community.pinecone.io/u/younes.souilmi)\
**Post date:** [January 19, 2024, 5:25pm UTC](https://community.pinecone.io/t/404-error-new-api-serveless-index/4200/3 "2024-01-19T17:25:02Z")

</div>

Hi Jesse and thanks for the quick response.  
I am trying to build a new Pinecone index (serverless) from an old Pinecone index (starter).  
Here are the Pinecone-related code snippets:

```auto

const { Pinecone } = require('@pinecone-database/pinecone'); // "@pinecone-database/pinecone": "^2.0.0"

// Initialize Pinecone clients for old and new indexes
const pineconeClientOld = new Pinecone({
  apiKey: 'oldindex-apikey'
});

const pineconeClientNew = new Pinecone({
  apiKey: 'newindex-apikey'
});

const indexOld = pineconeClientOld.index('oldindex-name');
const indexNew = pineconeClientNew.index('newindex-name');

async function upsertNewEntry(entry, newEmbedding) {
    // Format the data for upsert according to the new Pinecone API
    const record = [{
        id: entry.id,
        values: newEmbedding,
        metadata: entry.metadata
    }];

    // Upsert the entry with new embedding and all metadata into the new namespace
    await indexNew.namespace('my-namespace').upsert(record);
}

exports.rebuildPineconeDatabase = functions.runWith({ timeoutSeconds: 300 }).https.onRequest(async (req, res) => {
    try {
        // Fetch all entries from the existing index
        console.log("Fetching entries...");
        const entries = await fetchAllEntries();
        console.log(`Fetched ${entries.length} entries`);

        // Process each entry
        for (const entry of entries) {
            console.log(`Processing entry: ${entry.url}`);
            const newEmbedding = await generateEmbedding(entry);
            await upsertNewEntry(entry, newEmbedding);
        }

        res.send('Database rebuild process completed successfully.');
    } catch (error) {
        console.error('An error occurred:', error);
        res.status(500).send('Error during database rebuild.');
    }
});

```

On execution the upsertNewEntry function triggers a 404 error

```auto
call to https://api.pinecone.io/indexes/startupideas-prod returned HTTP status 404

```

accessing the index via the old format url [https://controller](https://controller).{environment}.pinecone.io works.

Let me know if any complementary details are needed.

---

<div class="post-metadata">

**Author:** ![jesse](https://sea2.discourse-cdn.com/flex020/user_avatar/community.pinecone.io/jesse/32/1658_2.png) [@jesse](https://community.pinecone.io/u/jesse)\
**Post date:** [January 19, 2024, 9:42pm UTC](https://community.pinecone.io/t/404-error-new-api-serveless-index/4200/4 "2024-01-19T21:42:22Z")

</div>

That error suggests that the new serverless index doesn’t already exist, and I don’t see you creating that new index in the code above. Are you sure the index already exists? You can log into the Pinecone console and check the **Indexes** tab of your project, or you can list your indexes like this:

```auto
import { Pinecone } from '@pinecone-database/pinecone'

const pc = new Pinecone({ apiKey: 'YOUR_API_KEY' })

await pc.listIndexes();

```

---

<div class="post-metadata">

**Author:** ![younes.souilmi](https://sea2.discourse-cdn.com/flex020/user_avatar/community.pinecone.io/younes.souilmi/32/1938_2.png) [@younes.souilmi](https://community.pinecone.io/u/younes.souilmi)\
**Post date:** [January 22, 2024, 7:32am UTC](https://community.pinecone.io/t/404-error-new-api-serveless-index/4200/5 "2024-01-22T07:32:27Z")

</div>

Thanks Jesse. To your questions:

- List item the index (serverless) I am hitting exists already; created via the Pinecone console (UI). It appears in the console as active

- List item the indexes API endpoint ([https://api.pinecone.io/indexes](https://api.pinecone.io/indexes)) returns the above index as well

It seems it exists!  
I now suspect the issue is due to the fact that I am initializing/using 2 different clients within the above function. Are there any specific considerations in such a setup?

---

<div class="post-metadata">

**Author:** ![jesse](https://sea2.discourse-cdn.com/flex020/user_avatar/community.pinecone.io/jesse/32/1658_2.png) [@jesse](https://community.pinecone.io/u/jesse)\
**Post date:** [January 22, 2024, 9:01pm UTC](https://community.pinecone.io/t/404-error-new-api-serveless-index/4200/6 "2024-01-22T21:01:26Z")

</div>

Another suggestion, @younes.souilmi: Can you double-check that the API keys you’re using are valid for the indexes you’re working with? For example, `pineconeClientOld` needs to use an API key from the project containing `oldindex-name`, and `pineconeClientNew` needs to use an API key from the project containing `newindex-name`.

---

<div class="post-metadata">

**Author:** ![younes.souilmi](https://sea2.discourse-cdn.com/flex020/user_avatar/community.pinecone.io/younes.souilmi/32/1938_2.png) [@younes.souilmi](https://community.pinecone.io/u/younes.souilmi)\
**Post date:** [January 23, 2024, 2:45pm UTC](https://community.pinecone.io/t/404-error-new-api-serveless-index/4200/7 "2024-01-23T14:45:06Z")

</div>

Thanks for the suggestion. API keys are correct, the problem is most likely due to the fact may function used 2 pinecone clients: the problem disappear if I keep a single client.  
I refactored my code to avoid having to use 2 different pinecone clients in a same function.

---

<div class="post-metadata">

**Author:** ![jesse](https://sea2.discourse-cdn.com/flex020/user_avatar/community.pinecone.io/jesse/32/1658_2.png) [@jesse](https://community.pinecone.io/u/jesse)\
**Post date:** [January 26, 2024, 10:12pm UTC](https://community.pinecone.io/t/404-error-new-api-serveless-index/4200/8 "2024-01-26T22:12:50Z")

</div>

I’m glad you got this resolved, @younes.souilmi, but I’m also curious why I didn’t run into this in my own testing. I’ll ask our SDK team for more insight.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex020/uploads/pinecone/original/1X/d16664eba369eeee623700cf12feab5562b37eaf.jpeg) [@system](https://community.pinecone.io/u/system)\
**Post date:** [January 30, 2024, 8:44pm UTC](https://community.pinecone.io/t/404-error-new-api-serveless-index/4200/9 "2024-01-30T20:44:44Z")

</div>

Closed on January 30, 2024, 8:44pm UTC

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