Skip to content

Nothing changed, pinned versions, functions still broke at some point in time #474

@paulschroeder-tomtom

Description

@paulschroeder-tomtom

🐛 Describe the bug
We are using Python flavored Azure Durable functions.

We realized some days ago that the local testing via the func tool did not work anymore:

$ func start --useHttps --verbose
...
[2023-12-22T13:33:52.512Z] Worker failed to index functions
[2023-12-22T13:33:52.512Z] Result: Failure
[2023-12-22T13:33:52.512Z] Exception: AttributeError: 'Blueprint' object has no attribute 'function_name'         
[2023-12-22T13:33:52.512Z] Stack:   File '/usr/lib/azure-functions-core-tools-4/workers/python/3.10/LINUX/X64/azure_functions_worker/dispatcher.py', line 345, in _handle__functions_metadata_request
...
[2023-12-22T13:33:52.512Z]   File '.../function_app.py', line 6, in module
[2023-12-22T13:33:52.512Z]     from landing import landing_page_bp
[2023-12-22T13:33:52.512Z]   File '.../orchestration-api/landing.py', line 15, in module
[2023-12-22T13:33:52.512Z]     @landing_page_bp.function_name(name='z_landing')
[2023-12-22T13:33:52.512Z] .
[2023-12-22T13:33:52.513Z] 0 functions found (Worker)
[2023-12-22T13:33:52.520Z] 0 functions loaded

Without us changing any code.

We are using the following versions:

  • Python: 3.10.12
  • Core Tools Version: 4.0.5455 Commit hash: N/A (64-bit)
  • Function Runtime Version: 4.27.5.21554
  • azure-functions-durable Python Module: 1.2.4

We were quite surprised to find out, that non of these versions have changed since last known working state to the currently broken state (we though we did our best not to run in such problems by pinning all of those versions).

Then we found out that there are newer versions of the azure-functions-durable module and we increased it subsequently to 1.2.8. With the intermediate versions we were facing the following behavior:

1.2.5

Same as 1.2.4.

1.2.6

Same as 1.2.4, 1.2.5:

1.2.7

While installing it we got following warning:

| Warning: The locked version 1.2.7 for azure-functions-durable is a yanked version. Reason for being yanked: This release is faulty and causes failures at startup. Please install `1.2.8` instead,

so we refrained from using it, though it worked:

$ func start --useHttps --verbose
...
[2023-12-22T13:54:25.568Z] Reading functions metadata (Custom)
[2023-12-22T13:54:25.577Z] 1 functions found (Custom)
[2023-12-22T13:54:25.582Z] 18 functions loaded
...

1.2.8

Finally did the trick.

So in essence this is solved BUT(!) the problem just appeared out of the blue and we want to know why, to avoid being surprised in the future, so:

  • What caused the breakage?
  • Did Microsoft change something?
  • If so, what?
  • Why did it happen?
  • How do we prevent such breakages in the future?

🤔 Expected behavior
No errors popping up, out of the blue.

Steps to reproduce

Any minimal reproducer we can use?

Here you'll find a minimal working example: #460 (comment) with the corresponding version it produces the given results.

What Durable Functions patterns are you using, if any?

None

Are you running this locally or on Azure?

Both

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs: Investigation 🔍A deeper investigation needs to be done by the project maintainers.P3Priority 3

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions