• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SVC-1487
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: eltee Statosky
Votes: 66
Watchers: 12
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

Payment to object fails to trigger money{} event in scripts (but still takes the L$)

Created: 08/Feb/08 04:22 PM   Updated: 24/Apr/08 12:35 PM
Return to search
Component/s: Scripts
Affects Version/s: None
Fix Version/s: None

Environment: Server side, it has happened with a wide range of clients.
Issue Links:
Duplicate
 
Relates
 

Linden Lab Issue ID: DEV-12514


 Description  « Hide
The client pays money into a scripted object, and recieves a blue dialog saying 'Transaction Failed'.

Their payment money is not returned however, nor is the money( ) event in the script ever triggered, leading to an upset customer, and an upset seller.

The payment does show up in the SL Transaction history however.

This seems to come and go in waves, as some weeks/months it will not happen at all, and other weeks it will happen multiple times a day. (each requiring a manual search through the SL transaction history and a manually sent refund to the customer).

It has been going on intermittently since the middle of 07, but seems to have gotten worse in the last week or two.

The real issue is that this client payment goes down a 'black hole' which takes a lot of time and record digging to rediscover and refund. Why is my account being given the money if the 'transaction failed' on the SL server back-end?

For LL's potential use: some transactions that 'failed' recently are:
732998019
732998966
732625855



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Lex Neva added a comment - 09/Feb/08 10:21 AM
I make 10-20 sales a day. Every week I see this at least 2-3 times. It's aggravating, and I waste a lot of time redelivering products.

Gregor Mougin added a comment - 28/Feb/08 02:04 PM
The bad thing about this is, that the money transfer actually goes through, despite what the blue pop up says. Only the scripted object does not recognize it.

Happened to me on various occasions, and the (of course) unresolved ones are those involving tips. The person meant to receive the tips never receives it.


Lex Neva added a comment - 22/Mar/08 02:22 PM
This just happened at least 5 times in a row, spread over two different sims (Eldora and Suffugium). The customer receives a message like "The system is unable to process your request at this time". Then a few minutes later, they see the payment go to me (and I see it too), but my vendor object never gets a money() event.

It should never be the case that money is paid through an object but the object never receives a money() event. The entire transaction should be cancelled.


lindenrobot made changes - 25/Mar/08 10:47 AM
Field Original Value New Value
Linden Lab Issue ID DEV-12514
Cenji Neutra added a comment - 31/Mar/08 01:50 PM
I also see this a lot in the Apez system. In the money() event of our devices they send out an 'event' to our system. We receive thousands of events a day from all over the grid.

The mechanism for sending events can't be 100% reliable, hence it is impossible to know accurately how many times the L$ transaction ultimately succeeds, but money() isn't triggered vs how many times the 'event' communication fails. The method for transmitting 'events' is complex and designed to be as reliable as possible in the face of grid failures - it makes several HTTP attempts initially, follows up with emails and chat to other devices the sim which can pass-on the event and also re-sends events periodically until they're explicitly acknowledged by our external server cluster.

Hence, when we see transactions (and sometimes customer reports) consistent with this happening, we don't receive any event notification from the device and sequence numbers indicate the money event never ran - I suspect this bug rather than failure of the communication mechanism.

I've also seen it happen on many occasions during testing when developing scripts for devices that handle money.

Note I have never seen a transaction that takes L$ but doesn't give it. The transactions always either succeed or have no effect. It can appear that way sometimes as the client L$ balance display may read incorrectly (e.g. show the deducted amount even upon failure), but re-logging the client will usually show the correct amount again.


eltee Statosky added a comment - 31/Mar/08 02:29 PM
Yeah it does not seem to affect money paid out from a script, that seems fare more robust.. this is specifically the payment method to trigger the money() event within the script in the first place. It seems like when the script gives out money, its using a different method so even if it doesn work right away, after a few minutes it will go through, theres no 'lsl event' tied to an avatar receiving money so no script issue to fail there.

The real issue is that the system seems to know the failure happened, hence those blue dialogs to the payer, but the system then does not return the money, or retry the event, it simply seems content to let it fail, and let the owner have to sort it out on their own, often with a very suspicious and upset customer who thinks they've just been ripped off.


Cenji Neutra added a comment - 31/Mar/08 03:02 PM
In my experience money paid from a script isn't reliable either (no different from the other methods of triggering payment as far as I can tell). This bug is about failure to trigger the money() event though, so I'll talk about general L$ transaction failures on another bug
Failing an L$ transaction is one thing, but allowing it to succeed without triggering the money() event seems more disastrous. At least I've never observed the money() event being triggered without payment!

Lex Neva added a comment - 31/Mar/08 03:42 PM
This is happening with increasing frequency lately. Over the weekend, I had 4-5 failed sales a day. That's about half of my in-world sales.

Eltee said:

> The real issue is that the system seems to know the failure happened, hence those
> blue dialogs to the payer, but the system then does not return the money, or retry the
> event, it simply seems content to let it fail, and let the owner have to sort it out on their
> own, often with a very suspicious and upset customer who thinks they've just been
> ripped off.

I think what's happening is something like this: the sim is sending the payment request over to the central payment handling system. The payment handling system doesn't respond in a timely fashion, so the sim decides the transaction failed and tells the user and doesn't send the money() event. Then the payment system catches up with its backlog and processes the request anyway. This disconnect is seriously causing us problems.

I'd like to see LL implement a grid-wide "kill switch" (VWR-4431) as a stopgap measure. It's almost always the case that when purchases start to fail, LL knows about it and posts to the blog. Often they say something like "please refrain from purchases as necessary" and sometimes they make announcements in-world. The problem is that these announcements aren't reaching users who don't check the blog and log in after the in-world announcement. When LL knows many transactions are failing and they're working to fix the problem, they could just hit a switch to temporarily turn off transactions and save us vendors a whole heap of trouble. I know I spend a lot of time cleaning up these transactions.


Lex Neva made changes - 31/Mar/08 03:43 PM
Link This issue Relates to VWR-4431 [ VWR-4431 ]
eltee Statosky added a comment - 31/Mar/08 03:49 PM
Updating the title to be a little easier to read/understand based on some suggestions people passed me.

eltee Statosky made changes - 31/Mar/08 03:49 PM
Summary L$ payment to objects using 'money()' events fails, and does not refund. Payment to object fails to trigger money{} event in scripts (but still takes the L$)
eltee Statosky added a comment - 31/Mar/08 03:59 PM
Hm, i'd hate to turn off sales for long periods of time seemingly every day at this point (whenever the blog says there are issues), since most of them for me still do seem to go through.. but it is a big support mess as it currently is. I would rather the person just got their money back and could try again (and editing the blue timeout dialog to reflect this would happen)

Or perhaps just tying the actual money transfer to the money event more synchronously, so it wouldn't happen if the money event was not fired off or some such thing.

or even i guess making it multi part with a branch so if it failed or timed out rather than being totally linear and chuggling along and eventually completing the transfer later, it could be aborted and the money refunded, sort of like killing a job in a print queue (assuming its some kind of bottlenecking thats causing the time outs)


eltee Statosky made changes - 31/Mar/08 04:11 PM
Link This issue is duplicated by VWR-5924 [ VWR-5924 ]
eltee Statosky made changes - 31/Mar/08 04:12 PM
Link This issue is duplicated by VWR-3409 [ VWR-3409 ]
eltee Statosky made changes - 31/Mar/08 04:14 PM
Link This issue is duplicated by MISC-810 [ MISC-810 ]
eltee Statosky made changes - 31/Mar/08 04:18 PM
Link This issue Relates to MISC-571 [ MISC-571 ]
Lex Neva added a comment - 31/Mar/08 06:09 PM
Well, I don't know what percentage of my transactions fail... but if LL is telling people that no one should rez things or buy things, then I think it doesn't make sense not to have the system enforce that. They know it's probably going to fail. That said, VWR-4431, someone suggested that this be a warning rather than a complete block, and I agree with that. Maybe a "proceed with care" dialog.

Of course, that's just a stopgap. The actual solution which I'm sure LL is working on right now is to prevent this from happening in the first place. Purchases of this sort should be "transactional" in nature, so that either everything happens or everything doesn't, not just some parts.


sweet valentine added a comment - 01/Apr/08 01:32 AM
this issue is going on for months more so the past 3 weks every day every damn day it says resolved we need this FIXED not bandaided everyday PLEASE FIX THIS ISSUE AS PRIORITY ONE businesses are losing everyday from this its HURTING US please FIX IT!

i have so many notecards from customers not recieving items i am no longer replacing them im sick and tired of it im sending them all to lindens to have them resolve it please FIX THIS


sweet valentine added a comment - 01/Apr/08 01:38 AM
this is not just happening with scripted vendors or items its happening randomly to anything set to sale i have many different items not scripted that his error happens with just a box set for sale even my money tree gives the error when someone trys to pick from it its not just scripted items

Toneless Tomba added a comment - 07/Apr/08 12:32 PM
This has been a problem for a long long time. But this has increased tenfold in the past couple weeks. I would encourage anybody having problems to have people vote on this: http://jira.secondlife.com/secure/ViewIssue.jspa?id=18652&vote=vote . I get about 2-3 complaints a day and most likely a couple that just don't say anything and don't return. The money event does not trigger, I have fall backs in vendor if money is wrong amount or cannot connect to server, it informs me and performs the appropriate action. It just sits there like nothing happens. Anybody have better luck using boxes for sale?

cloud insoo added a comment - 08/Apr/08 12:34 AM
This issue has been seriously bad lately. I am having to spend *hours* on IM's from customers daily for this (as well as all the other fun new bugs since Havok4 & the new viewer). But this bug has been a serious problem for a long time and needs to be addressed once and for all. Money transactions need to be 99.9% reliable - no business can afford to keep supporting missed deliveries or lost payments manually. And that includes well established RL companies - they are not going to want to create a presence in SL with this kind of overhead and risk alienating customers whom may perceive they are getting ripped off.

BTW, I have also seen this in both vending machines using the llMoney() function call as well as with objects simply set for sale !!


eltee Statosky added a comment - 08/Apr/08 12:40 AM
Yeah i have heard reports of it failing on just buy objects as well but i believe it is the same problem, i.e. i believe buy objects sort of have a defacto money() like event, internal to them, which is also failing to be triggered, hence the object never gives out its contents etc

Lex Neva made changes - 18/Apr/08 10:18 AM
Link This issue is duplicated by SVC-2183 [ SVC-2183 ]
gooden uggla added a comment - 24/Apr/08 09:36 AM
Curiously, this has been open for 2 months and yet no Lindens have commented on it... hmmm...

athena sterling added a comment - 24/Apr/08 12:35 PM
I have a very popular arcade with tons of freeplay that requires 1L to start the game, and the 1L is then transferred back to the player. Over the last few weeks, this has gotten very annoying because of stale payments that actually went through yet triggered nothing in the script.

For me, this can happen dozens of times within an hour depending on how busy we are when the system gets fubar'd...


Sue Linden made changes - 13/Nov/08 12:04 PM
Workflow jira-2007-12-22a [ 52072 ] jira-2008-11-14 [ 80680 ]
Sue Linden made changes - 13/Nov/08 04:29 PM
Workflow jira-2008-11-14 [ 80680 ] jira-2008-11-14a [ 86756 ]
Sue Linden made changes - 13/Nov/08 04:45 PM
Workflow jira-2008-11-14 [ 86756 ] jira-2008-11-14a [ 91918 ]
Sue Linden made changes - 13/Nov/08 04:55 PM
Workflow jira-2008-11-14 [ 91918 ] jira-2008-11-14a [ 95438 ]