You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(detection): Fix FileNotFoundError on user_credentials.csv, deprecated rerun methods, and SMTP fallback in Signature Verification Portal #1734
The Streamlit web application for Signature Verification in projects/detection/Signature_Verification_Portal/app.py cannot start and encounters runtime exceptions:
FileNotFoundError on startup:
Line 12 attempts to read user_credentials.csv directly from the current working directory without checking if it exists:
user_data=pd.read_csv("user_credentials.csv")
Because user_credentials.csv is not present in the repository, any attempt to run streamlit run app.py crashes immediately with: FileNotFoundError: [Errno 2] No such file or directory: 'user_credentials.csv'
Additionally, using raw relative paths fails if the user starts Streamlit from the repository root.
Deprecated st.experimental_rerun() Calls: app.py and Dashboard.py repeatedly call st.experimental_rerun(), which is deprecated and removed in recent Streamlit releases in favor of st.rerun().
Hardcoded SMTP Credentials and Unhandled Network Errors:
Lines 35-36 hardcode personal credentials for Gmail SMTP. If SMTP connection fails or environment variables are not configured, attempting to reset a password crashes the entire application instead of handling errors gracefully.
Redundant Non-Standard Dependency in requirements.txt: requirements.txt contains db-sqlite3, an outdated third-party package; Python includes native sqlite3 in the standard library.
Expected behavior
app.py should safely resolve user_credentials.csv relative to the script directory and automatically initialize an empty credentials DataFrame with the required schema (username, password) if the file does not exist yet.
The application should use st.rerun() when available and fallback to st.experimental_rerun() for backward compatibility.
Password reset and SMTP calls should handle exceptions gracefully and allow environment variable overrides (SMTP_SENDER_EMAIL, SMTP_SENDER_PASSWORD).
requirements.txt should clean up dependencies and remove redundant db-sqlite3.
Proposed Changes
Initialize user_credentials.csv safely in app.py with relative path handling (os.path.join(os.path.dirname(__file__), ...)).
Replace hardcoded relative CSV paths across insert_user, update_password, and update_password_in_database.
Add resilient rerun helper function supporting both st.rerun and st.experimental_rerun.
Wrap SMTP sending in try-except blocks with configurable environment variable fallbacks.
Thank you for creating this issue! 🎉 We'll look into it as soon as possible. In the meantime, please make sure to provide all the necessary details and context. If you have any questions reach out to LinkedIn. Your contributions are highly appreciated! 😊
Note: I Maintain the repo issue twice a day, or ideally 1 day, If your issue goes stale for more than one day you can tag and comment on this same issue.
You can also check our CONTRIBUTING.md for guidelines on contributing to this project. We are here to help you on this journey of opensource, any help feel free to tag me or book an appointment.
Activity
github-actions commentedon Nov 9, 2026
Thank you for creating this issue! 🎉 We'll look into it as soon as possible. In the meantime, please make sure to provide all the necessary details and context. If you have any questions reach out to LinkedIn. Your contributions are highly appreciated! 😊
Note: I Maintain the repo issue twice a day, or ideally 1 day, If your issue goes stale for more than one day you can tag and comment on this same issue.
You can also check our CONTRIBUTING.md for guidelines on contributing to this project.
We are here to help you on this journey of opensource, any help feel free to tag me or book an appointment.