streamlit/streamlit · error · RuntimeError
main_dg is not set
Error message
main_dg is not set
What it means
Error "main_dg is not set" thrown in streamlit/streamlit.
Source
Thrown at lib/streamlit/delta_generator_singletons.py:236
return self._ensure_context_var().__hash__()
# we don't use the default factory here because `main_dg` is not initialized when this
# module is imported. This is why we have our own ContextVar wrapper.
context_dg_stack: ContextVarWithLazyDefault[tuple[DeltaGenerator, ...]] = (
ContextVarWithLazyDefault(
"context_dg_stack", default=lambda: (get_dg_singleton_instance().main_dg,)
)
)
def get_default_dg_stack_value() -> tuple[DeltaGenerator, ...]:
"""Get the default dg_stack value with which the dg_stack should
be initialized and reset if needed.
"""
instance = get_dg_singleton_instance()
if instance._main_dg is None:
raise RuntimeError("main_dg is not set")
return (instance._main_dg,)
def get_last_dg_added_to_context_stack() -> DeltaGenerator | None:
"""Get the last added DeltaGenerator of the stack in the current context.
Returns None if the stack has only one element or is empty for whatever reason.
"""
current_stack = context_dg_stack.get()
# If set to "> 0" and thus return the only delta generator in the stack -
# which logically makes more sense -, some unit tests fail.
# It looks like the reason is that they create their own main delta generator
# but do not populate the dg_stack correctly. However, to be on the safe-side,
# we keep the logic but leave the comment as shared knowledge for whoever will look
# into this in the future.
if len(current_stack) > 1:
return current_stack[-1]View on GitHub (pinned to 202661fc55)
When it happens
Trigger: Thrown at lib/streamlit/delta_generator_singletons.py:236 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of streamlit/streamlit@202661fc55 (2026-08-26).
Data as JSON: /api/errors/51890abfd56676cb.
Report an issue: GitHub.