Bug Report: Action Completes but Platform Fails to Serve Locally Saved File

Hi Pickaxe Team,

We are writing to report a critical bug we’ve encountered with the Action file output system. Despite extensive testing and following the official guidelines, the platform is not serving files generated and saved locally by our Python Action.

Objective:
Our goal is to use an Action to process an uploaded data file (.xlsx), generate a new Excel report, save it to the local directory, and have the platform automatically present this file to the user for download.

Expected Behavior:
Based on the “Advanced Actions” video tutorial by CEO Nathaniel, when an Action saves a file (e.g., report.xlsx) to its local execution directory, the platform is expected to automatically “scrape” this file and inject a download link into the bot’s response for the user.

Actual Behavior:
Our Action code runs to completion without any Python errors. The bot acknowledges the process has finished, but no download link is provided. The conversation log shows the bot becoming confused:

  1. It first states that the report has been created.

  2. When asked for the file, it apologizes for not being able to provide a download link.

  3. This confirms the Action ran, but the crucial file-serving step by the platform failed.

Steps to Reproduce:
The issue can be reliably reproduced with the following setup:

1. Action Details:

  • Name: enflasyon_muhasebesi_hesapla

  • Function Inputs: dosya_adi (from file upload), sirket_adi (text), yil (text).

  • Additional Packages: pandas, numpy, openpyxl, xlsxwriter.

  • Environment Variables: None (all external dependencies like Dropbox have been removed).

2. Final Action Code (Local Save Method):
This code successfully reads the inputs, performs calculations, and saves the final .xlsx file locally.

(You can paste the full, final “Yerel Kaydetme” code here.)

Example:

import pandas as pd
import numpy as np
import io
import os

… (rest of the complete code)

def enflasyon_muhasebesi_hesapla(dosya_adi: str, sirket_adi: str, yil: str):
try:
# … (all data processing logic) …

    output_filename = "Enflasyon_Sonuc.xlsx"
    with pd.ExcelWriter(output_filename, engine='xlsxwriter') as writer:
        df_sonuc.to_excel(writer, sheet_name='Enflasyon Düzeltmesi', index=False)
    
    # As per the tutorial, return None on success
    return None
except Exception as e:
    return f"ACTION ERROR: {str(e)}"

3. System Prompt:
A simple prompt designed to display the result.

The action has been triggered by a form. If the action returns an error (a string), display it. If the action succeeds (returns nothing), the platform should provide a file link. Your response MUST be: “Your report has been successfully generated. You can download it below:”

Diagnosis & Conclusion:
We have exhaustively ruled out other possibilities, including:

  • Dropbox Integration: Our initial approach used the Dropbox API. This failed silently, which we now believe was due to the platform’s 2-minute timeout limit during the network upload.

  • API Token / Permissions: All token issues were ruled out during the Dropbox tests.

  • Code Errors: The current code runs to completion without raising any exceptions. We confirmed this by making the except block return a very explicit error message, which never appears.

The evidence strongly suggests that the Python code is executing correctly, but the final, critical step where the Pickaxe platform is supposed to detect the saved file and provide it to the user is not functioning as described.

We are very excited about the capabilities of Pickaxe and believe this is a solvable platform-level issue. We would be happy to provide any further information or assistance to help you diagnose and resolve this bug.

Thank you for your time and support.

Best regards,
Köksal.