Skip to content

bug(voice): auto-created ElevenLabs agents get the 10-minute default; the fix is manual and silently reverts #229

Closed
tiann/hapi
#2017

Description

@heavygee

What

hub/src/web/routes/voice.ts finds-or-creates a "Hapi Voice Assistant" ConvAI agent per voice (getOrCreateAgent → createAgent). The creation payload sets conversation_config.tts.voice_id and never sets conversation_config.conversation.max_duration_seconds.

ElevenLabs therefore applies its own default: 600 seconds, ten minutes.

Why it matters

The operator hit the ten-minute cut-off, and it was fixed by raising max_duration_seconds to 1800 on each existing agent through the API. That fix is per-agent and manual, so:

  • Every new voice used from HAPI silently creates an agent back at ten minutes.
  • Anyone deleting and letting an agent be recreated silently reverts the fix.
  • There is no sign of it anywhere until a conversation is cut off mid-sentence.

The account currently holds five agents, four of them auto-created and distinguishable only by a voice id in the name. Four are now at 30 minutes; one sits at 60.

Ask

Set a sane max_duration_seconds in the creation payload so a new voice does not regress to ten minutes, and make it configurable rather than hardcoded — the right value is an operator preference, and the cap is also the runaway-cost guard, since ConvAI bills by the minute.

Worth considering at the same time: the auto-created agents are all named "Hapi Voice Assistant [voice:]", which is unreadable in the ElevenLabs UI and makes it easy to change the wrong one by hand.

Activity

  1. heavygee commented on Oct 8, 2026

    @heavygee
    OwnerAuthor

    Operator direction: this should be a HAPI config item, not a hardcoded constant.

    Shape: an ElevenLabs session max-duration setting in HAPI's own config, applied in the createAgent payload so every auto-created agent gets it, with a sane default rather than inheriting ElevenLabs' 600s. Changing it in HAPI should be the way you change it, rather than editing agents by hand in the ElevenLabs UI and watching the change revert the next time a new voice is used.

    Two things worth getting right:

    • The cap is also the runaway-cost guard — ConvAI bills per minute — so the default should be deliberate rather than maximal, and the setting should be visible enough that raising it is a conscious act.
    • Existing agents should be reconciled to the configured value, not just newly created ones. Four agents on the account are currently at 1800s and one at 3600s, all set by hand; without reconciliation the config and reality drift immediately.

    Operator has flagged this as lane B eligible for the upstream merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions