aws runtime_error ai_generated true

SnapStart hook timed out: The runtime hook did not complete within 10 seconds.

ID: aws/lambda-snapstart-hook-timeout

Also available as: JSON · Markdown · 中文
75%Fix Rate
82%Confidence
1Evidence
2024-01-10First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
java-21 active
snapstart-1.0 active
aws-lambda-java-core-1.2.3 active

Root Cause

Lambda SnapStart initialization hook (e.g., for Java) exceeded the 10-second limit during snapshot creation.

generic

中文

Lambda SnapStart 初始化钩子(例如 Java)在快照创建期间超过了 10 秒限制。

Official Documentation

https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html

Workarounds

  1. 80% success Optimize the initialization code in the `CRaC` or `beforeCheckpoint` hook: move heavy setup (e.g., DB connection pools) to lazy initialization after checkpoint.
    Optimize the initialization code in the `CRaC` or `beforeCheckpoint` hook: move heavy setup (e.g., DB connection pools) to lazy initialization after checkpoint.
  2. 70% success Use a smaller runtime or reduce classpath scanning: in Spring Boot, set `spring.context.initializer.exclude` to skip slow beans.
    Use a smaller runtime or reduce classpath scanning: in Spring Boot, set `spring.context.initializer.exclude` to skip slow beans.

中文步骤

  1. 优化 `CRaC` 或 `beforeCheckpoint` 钩子中的初始化代码:将重负载设置(如数据库连接池)移至检查点后的延迟初始化。
  2. 使用更小的运行时或减少类路径扫描:在 Spring Boot 中设置 `spring.context.initializer.exclude` 以跳过慢速 bean。

Dead Ends

Common approaches that don't work:

  1. 100% fail

    Increasing Lambda timeout setting doesn't affect SnapStart hook timeout; the 10-second limit is fixed.

  2. 50% fail

    Disabling SnapStart entirely removes the performance benefit and doesn't fix the root cause.