Skip to main content

Session Creation Fails

Problem: Unable to create a new session Quick Fix: Check your API key, rate limits, and agent name.
Verify your API key is correct and active:
const response = await fetch('https://api.agi.tech/v1/models', {
  headers: { 'Authorization': `Bearer ${API_KEY}` }
});

if (response.status === 401) {
  console.log('Invalid API key');
} else if (response.status === 403) {
  console.log('API key not authorized');
} else {
  console.log('Authentication successful');
}
You may have hit rate limits. Implement exponential backoff:
async function createSessionWithRetry(maxRetries = 3) {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    try {
      return await client.createSession('agi-0');
    } catch (e) {
      if (e.response?.status === 429) {
        const waitTime = Math.pow(2, attempt);
        console.log(`Rate limited. Waiting ${waitTime}s...`);
        await new Promise(resolve => setTimeout(resolve, waitTime * 1000));
      } else {
        throw e;
      }
    }
  }
  throw new Error('Max retries exceeded');
}
Ensure you’re using a valid agent name:
const models = await client.getModels();
console.log(`Available models: ${models}`);

const session = await client.createSession('agi-0'); // or 'agi-0-fast'

Session Not Found (404)

Problem: Get 404 error when accessing a session Common Causes:
  • Session was deleted
  • Session ID typo
  • Session expired
1

1. Check if session was deleted

List all active sessions to verify:
const sessions = await client.listSessions();
const sessionIds = sessions.map(s => s.session_id);

if (!sessionIds.includes(mySessionId)) {
  console.log('Session no longer exists');
}
2

2. Verify session ID is correct

Store session ID immediately after creation:
const session = await client.createSession('agi-0');
const sessionId = session.session_id;

// Save it for later use
fs.writeFileSync('session_id.txt', sessionId);
3

3. Handle session expiration

Sessions may expire after prolonged inactivity. Create a new session:
async function getOrCreateSession(storedSessionId) {
  try {
    await client.getSessionStatus(storedSessionId);
    return storedSessionId;
  } catch (e) {
    if (e.response?.status === 404) {
      const session = await client.createSession('agi-0');
      return session.session_id;
    }
    throw e;
  }
}

Session Stuck in “Initializing”

Problem: Session status remains “initializing” for too long Solution: Wait with timeout, then retry if needed
async function waitForSessionReady(sessionId, timeout = 60) {
  const startTime = Date.now();
  
  while (true) {
    if (Date.now() - startTime > timeout * 1000) {
      await client.deleteSession(sessionId);
      throw new Error('Session initialization timeout');
    }
    
    const session = await client.getSessionStatus(sessionId);
    const status = session.status;
    
    if (status === 'ready') {
      return true;
    } else if (status === 'error') {
      throw new Error('Session initialization failed');
    }
    
    await new Promise(resolve => setTimeout(resolve, 2000));
  }
}

// Usage
const session = await client.createSession('agi-0');
await waitForSessionReady(session.session_id);
await client.sendMessage(session.session_id, task);