Skip to content

slack webhook load failed #18651

@vagetablechicken

Description

@vagetablechicken

Bug summary

  File "...", line 3, in <module>
    slack_webhook_block = SlackWebhook.load("slack")
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\ProgramData\miniconda3\Lib\site-packages\prefect\_internal\compatibility\async_dispatch.py", line 94, in wrapper
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "C:\ProgramData\miniconda3\Lib\site-packages\prefect\blocks\core.py", line 1099, in load
    return cls._load_from_block_document(block_document, validate=validate)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\ProgramData\miniconda3\Lib\site-packages\prefect\blocks\core.py", line 1202, in _load_from_block_document
    return cls._from_block_document(block_document)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\ProgramData\miniconda3\Lib\site-packages\prefect\blocks\core.py", line 736, in _from_block_document
    block = block_cls.model_validate(block_document.data)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\ProgramData\miniconda3\Lib\site-packages\prefect\blocks\core.py", line 1545, in model_validate
    return super().model_validate(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\ProgramData\miniconda3\Lib\site-packages\pydantic\main.py", line 705, in model_validate
    return cls.__pydantic_validator__.validate_python(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\ProgramData\miniconda3\Lib\site-packages\prefect\blocks\notifications.py", line 41, in __init__
    NOTIFY_TYPES += (PREFECT_NOTIFY_TYPE_DEFAULT,)  # pyright: ignore[reportUnknownVariableType]
TypeError: unsupported operand type(s) for +=: 'frozenset' and 'tuple'

When I want to use slack webhook, no matter set Notify Type to slack_default or not, it'll failed like this.

run this code to reproduce:

from prefect.blocks.notifications import SlackWebhook
from apprise import NOTIFY_TYPES  # pyright: ignore[reportAttributeAccessIssue, reportUnknownVariableType]

# Now you can use NOTIFY_TYPES without type hinting errors
print(NOTIFY_TYPES)
slack_webhook_block = SlackWebhook.load("slack")
slack_webhook_block.notify("Hello from Prefect!")

Version info

Version:             3.4.0  -  3.4.8
API version:         0.8.4
Python version:      3.12.3
Git commit:          c80e4442
Built:               Fri, May 02, 2025 08:02 PM
OS/Arch:             win32/AMD64
Profile:             81
Server type:         server
Pydantic version:    2.11.5

Additional context

apprise version 1.9.4 change NOTIFY_TYPES type, we only can use apprise<1.9.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions