godotengine / godotengine/godot
Invoking .callv() when doing so would cause an error instead fails silently
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
- Reproducible in 4.3.stable
### System information
Godot v4.3.stable - Windows 10.0.19045 - GLES3 (Compatibility)
### Issue description
Invoking .callv() in a situation that would normally produce an (invoke-related) error instead fails silently.
Qualifying errors include but are maybe not limited to:
- `Invalid type in function`
- `Invalid call to function`
### Steps to reproduce
1. Execute the following code:
```gdscript
func _ready() -> void:
print_int.callv(["5"]) # Fails silently. No error.
self.callv("print_int", ["5"]) # Fails silently. No error.
print_int.call("5") # Errors correctly: Invalid type in function '...'. Cannot convert argument 1 from String to int.
func print_int(number : int) -> void:
print(number)
```
2. Observe that `.callv()` does not correctly result in an error
### Minimal reproduction project (MRP)
N/A
Contributor guide
Research direction
Start at the .callv() entry points described in the reproduction and compare their error handling with the .call() path. Run the provided _ready() snippet to confirm the silent failures, then verify that invalid argument types and invalid function calls surface invoke-related errors without changing successful calls.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, godot
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100